我们之前在机上跑感知模型一直用的是寒武纪的加速棒, 然而这个东西又贵而且又占了一个宝贵IO位, 干脆跑在核显i5-12400上算了, 于是乎怎么跑呢, Intel似乎有一个框架, 吹的非常好用的样子, 叫做Openvino.

在宿主机Ubuntu 20.04 with kernel 5.15上跑的非常的成功, 然而我们的系统跑在一个BaseUbuntu 18.04docker里, 按着教程整了半天, 可是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的文档也好烂.