博文

目前显示的是 十二月, 2017的博文

终于在Fedora 27上把nvidia-docker2装上了

在开始一切工作之前,先把和nvidia以及cuda相关的rpm全删掉。

第一步是装显卡驱动。
不要通过rpmfusion来安装cuda和nvidia的driver,否则会遇到各种version mismatch。我需要最新的kernel,最新的gpu driver,但是我不需要最新的CUDA!!

kernel启动的命令行参数一定要注意加上rd.driver.blacklist=nouveau。我是通过EFI启动的,如果不加这个,会在kernel boot的时候初始化fb,加载nouveau,然后nvidia的闭源驱动就无法初始化了。nouveau就是个占着茅坑不拉屎的废物,任何时候都不要用它!!


然后,怎么装cuda。
nvidia-docker2依赖于cuda,但是cuda在fedora 27上实际上是个半残废。
Fedora 26和Fedora 27的gcc是 7.x,太新了。没法和cuda9一起用。cuda9要求gcc的version<=6.x 。所以需要Fedora的version <=25。
cuda提供了Fedora 25的rpm repo,如果直接安装这个,会依赖于很多Fedora 25的package,会引来冲突。
我是用cuda的run file来安装cuda 9.0, 在fedora 27上。
安装的时候会询问是否装drivers。此时要选择不装。因为那个driver版本太老,在新的kernel上编译不过。


最后是docker。
$ dnf install docker-ce
不要安装nvidia-docker2这个包,否则会把docker这个rpm带进来。安装nvidia-container-runtime即可。

dnf install nvidia-container-runtime

$ cat /etc/docker/daemon.json
{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

n…