Optimization Docker图像与架构优化?
一些库(如BLAS/LAPACK或某些优化库)在编译时针对本地机器体系结构进行了优化。让我们以OpenBlas为例。使用OpenBlas创建Docker容器有两种方法:Optimization Docker图像与架构优化?,optimization,docker,lapack,blas,Optimization,Docker,Lapack,Blas,一些库(如BLAS/LAPACK或某些优化库)在编译时针对本地机器体系结构进行了优化。让我们以OpenBlas为例。使用OpenBlas创建Docker容器有两种方法: DYNAMIC_ARCH=1 NO_AFFINITY=1 NUM_THREADS=32 使用Dockerfile,其中指定OpenBlas库的git克隆以及所有必要的编译标志和构建命令 从Docker Hub拉取并运行其他人的Ubuntu+OpenBlas图像 选项(1)保证OpenBlas是为您的机器构建和优化的。选择(2)
DYNAMIC_ARCH=1 NO_AFFINITY=1 NUM_THREADS=32
我似乎误解了Docker映像和/或自动构建的概念,我非常希望得到澄清。不,我认为你说得很对 您链接到的映像是自动构建的,因此OpenBlas将使用Docker构建服务器的内核和体系结构进行编译。我在构建OpenBlas时注意到设置了以下标志:
DYNAMIC_ARCH=1 NO_AFFINITY=1 NUM_THREADS=32
这可能会以性能成本使安装变得可移植。另一种选择是为各种构建配置提供单独的映像。谢谢Adrian!您是对的-通过添加DYNAMIC_ARCH=1,所有CPU内核都会被编译(从而增加编译时间),然后根据调用OpenBlas的CPU体系结构进行拉取。整洁的好的,这很有趣!更新:Docker不再只是Linux 64位,而是针对Windows 10 PRO和Windows server 2016的Windows 64位本机容器。Docker Linux 32位@Walid的努力也是如此。我已经删除了那句话。@AdrianMouat我喜欢你的书和你的写作方式。谢谢你的社区精神。