我们之前在机上跑感知模型一直用的是寒武纪的加速棒, 然而这个东西又贵而且又占了一个宝贵IO位, 干脆跑在核显i5-12400
上算了, 于是乎怎么跑呢, Intel
似乎有一个框架, 吹的非常好用的样子, 叫做Openvino
.
在宿主机Ubuntu 20.04 with kernel 5.15
上跑的非常的成功, 然而我们的系统跑在一个Base
在Ubuntu 18.04
的docker
里, 按着教程整了半天, 可是query_device
永远没有GPU
.
然后我发现有官方的docker镜像, 然而官方的18.04镜像同样没有GPU, 可是20.04就可以. 但是文档中完全没有提及有关的信息.
仔细对比了发现, 对于Intel
的核显来说, 要跑和模型和跑OpenGL
是两个完全不同的驱动, 如果跑GUI
的话只要装mesa
就行了, 然而想要使用Openvino
则需要安装一个叫做compute-runtime
的驱动, 而这个驱动是用了较新的glibc
编译的, 所以在Ubuntu 18.04
上他直接挂掉了.
好在这个驱动是开源的, 而且它实际上也没有需求新的glibc
特性, 所以你只要在本地环境重新编译一下就可以使用了.
PS: 有些时候遇见运行软件, glibc
版本不兼容的时候, 如果这个东西的依赖不多的话, 可以直接下载一个新版本glibc
放在home
目录下, 然后用patchelf
直接把这玩意的rpath
指向你的新版本glibc
, 然后他就会用你home
目录下的glibc
啦.
PS2: Linux
就没有人想想这堆库不兼容怎么办吗, 虽然说现在有AppImage, 可是一是这东西做的也不好用, 二是还是有很多东西需要直接装在宿主机上, 还有firmware, 老的系统都不怎么能用新硬件, 真的绝.
PS3: Openvino
的文档也好烂.