前言
腾讯开源的超分辨率Real-SR算法,在安装测试的过程中,遇到了不少问题,找到了一条可以走通的路,不一定是最好的解决方案。
项目地址:https://github.com/Tencent/Real-SR
1. 问题描述
因为官方提供了可执行文件,所以决定下载下来安装测试。但无论Windows、MacOS都失败了,要么提示没有显卡,要么是显卡型号不支持,要么是缺少各种库,然后开始尝试Docker
安装CentOS 7和Ubuntu这条路,也很曲折,很幸运,最终还是跑起来了。
(注意:如果直接在物理机上运行,遇到的问题可能和这里不一样,但笔者并没有条件测试。)
当在GPU
服务器上的容器
内测试时,最常见的错误是:
vkCreateInstance failed -9
解决方法:
RUN apt install mesa-vulkan-drivers -y
但解决之后,就会遇到下面的错误。
vkEnumeratePhysicalDevices failed -3
invalid gpu device
2. 解决方案
首先,拉取nvidia/vulkan
。
docker pull nvidia/vulkan:1.2.170-470
然后,需要在这个镜像的基础上做一个自己的镜像,挂载好下载的可执行文件目录。
可执行文件下载地址:https://github.com/nihui/realsr-ncnn-vulkan/releases
然后,运行容器,切换到挂载目录下,按照官方的说明运行。
./realsr-ncnn-vulkan -i input.jpg -o output.png -s 4
会报错。
./realsr-ncnn-vulkan: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory
解决方法,在Dockerfile中增加安装指令。
RUN apt-get update
RUN apt-get install libgomp1 -y
重新制作镜像,然后启动容器。
docker run -it --gpus="all" -v /home/src:/src --rm sr/sr:0.1 /bin/bash
如果仍然报错,可以尝试如下启动指令。
docker run -it --gpus='all,"capabilities=compute,utility,graphics,display"' --env DISPLAY:$DISPLAY -v /home/src:/src --rm sr/sr:0.1 /bin/bash
这个时候,就可以正常运行了。