【问题标题】:How can I run programs with OpenCL on AMD inside a gitlab-ci docker executor如何在 gitlab-ci docker 执行器中使用 AMD 上的 OpenCL 运行程序
【发布时间】:2020-08-27 01:27:51
【问题描述】:

我有一个用于私有项目的自托管 gitlab 和一个用于测试 AMD GPU 的专用物理节点。在这个节点上已经有一个带有 docker executor 的 gitlab-ci runner。

有没有办法使用 OpenCL 执行程序并访问由 gitlab-ci 运行程序创建的 docker-containers 中的 AMD GPU?

到目前为止,我发现的只是解决此问题的 Nvidia 和 CUDA 相关信息(例如 How can I get use cuda inside a gitlab-ci docker executor),但我没有发现任何对 OpenCL 和 AMD 案例有用的信息。

【问题讨论】:

    标签: docker opencl gitlab-ci


    【解决方案1】:

    在此期间我自己找到了解决方案。比预期的要容易。

    gitlab-ci 管道的 docker-image 只需要来自 amd 网站 (https://www.amd.com/en/support) 的 amd gpu 驱动程序。

    构建 docker 镜像的示例 Dockerfile:

    from ubuntu:18.04
    
    RUN apt-get update && apt-get upgrade -y
    
    RUN apt-get install -y gcc g++ opencl-headers ocl-icd-opencl-dev curl apt-utils unzip tar curl xz-utils wget clinfo
    
    RUN cd /tmp &&\
        curl --referer https://drivers.amd.com/drivers/linux -O https://drivers.amd.com/drivers/linux/amdgpu-pro-20.30-1109583-ubuntu-18.04.tar.xz &&\
        tar -Jxvf amdgpu-pro-20.30-1109583-ubuntu-18.04.tar.xz &&\
        cd amdgpu-pro-20.30-1109583-ubuntu-18.04/ &&\
        ./amdgpu-install -y  --headless  --opencl=legacy
    

    根据您使用的 gpu 和 linux 版本,您可能需要另一个文件,然后是本示例中的文件。也有可能该文件在网站上不再存在,您必须签出最新的文件。

    除此之外,只需对 gitlab-runner 配置 (/etc/gitlab-runner/config.toml) 进行一点修改。

    在 docker-runner 中添加:devices = ["/dev/dri"]:

    [[runners]]
      ...
      [runners.docker]
        ...
        devices = ["/dev/dri"]
    

    然后使用gitlab-runner restart 重新启动 gitlab 运行器。

    在此之后,可以在 gitlab-ci docker runner 中执行 opencl-code。

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 2017-08-03
      • 2021-09-13
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多