【发布时间】:2016-01-12 17:54:22
【问题描述】:
我有几台 GPU 的机器。我的想法是将它们附加到不同的 docker 实例,以便在 CUDA(或 OpenCL)计算中使用这些实例。
我的目标是使用相当旧的 Ubuntu 和相当旧的 AMD 视频驱动程序 (13.04) 设置 docker 映像。原因很简单:升级到较新版本的驱动程序会破坏我的 OpenCL 程序(由于有错误的 AMD linux 驱动程序)。
所以问题来了。是否可以在新的 Arch Linux 设置上使用旧 Ubuntu、旧内核(例如 3.14)和旧 AMD(fglrx)驱动程序运行 docker 映像,并在存储库中使用新内核 4.2 和更新的 AMD(fglrx)驱动程序?
附:我尝试了this answer(使用 Nvidia 卡),不幸的是,docker 映像中的deviceQuery 没有看到任何 CUDA 设备(因为它发生在一些原始答案的评论者身上)......
P.P.S.我的设置:
- CPU:英特尔至强 E5-2670
-
GPU:
-
1 x Radeon HD 7970
$ lspci -nn | grep Rad 83:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] [1002:6798] 83:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0] 2 x GeForce GTX Titan Black
-
【问题讨论】:
-
我很确定特定机器上的所有 docker 容器 must use the same kernel 作为主机。您可以在 Arch Linux 设置上运行 Ubuntu“映像”,但它们必须使用相同的内核(主机内核)。我认为您关于 docker 映像中的 deviceQuery 的问题是一个单独的问题。我不清楚这是一个编程问题。
-
一些应用程序强烈依赖于内核版本(因此也依赖于功能)。那么如何共享内核(如果它们非常不同)?我是否应该运行与主机操作系统相同的“映像”操作系统?我认为至少在 DevOps 意义上这是一个编程问题。