use*_*893 5 optimization blas lapack docker
一些库(例如 BLAS/LAPACK 或某些优化库)会在编译时针对本地计算机架构进行优化。让我们以 OpenBlas 为例。使用 OpenBlas 创建 Docker 容器有两种方法:
使用 Dockerfile,在其中指定 OpenBlas 库的 git 克隆以及所有必要的编译标志和构建命令。
从 Docker Hub 拉取并运行其他人的 Ubuntu + OpenBlas 映像。
选项 (1) 确保 OpenBlas 是针对您的机器构建和优化的。那么选项(2)呢?作为 Docker 新手,我将映像视为固定和静态的东西,因此运行此映像不会针对我的机器(可能是基于 AMD 的而不是维护者的 Intel CPU)进行优化。让我困惑的是,镜像ipython/scipyserver在构建过程中确实从 Github 克隆了最新的 OpenBlas master。
我似乎误解了 Docker 镜像和/或自动构建的概念,非常感谢您的澄清。
不,我认为你说得很对。
您链接到的映像是自动构建的,因此 OpenBlas 将使用 Docker 构建服务器的内核和架构进行编译。我确实注意到构建脚本在构建 OpenBlas 时设置了以下标志:
DYNAMIC_ARCH=1 NO_AFFINITY=1 NUM_THREADS=32
Run Code Online (Sandbox Code Playgroud)
这大概会使安装变得可移植,但会牺牲性能。另一种方法是为各种构建配置提供单独的映像。
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |