十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MXNet cu101mkl 分发包安装指南:CUDA 10.1 + MKLDNN 版本的 PyPI 安装与构建原理

MXNet cu101mkl 分发包安装指南:CUDA 10.1 + MKLDNN 版本的 PyPI 安装与构建原理 MXNet cu101mkl 分发包安装指南CUDA 10.1 MKLDNN 版本的 PyPI 安装与构建原理【免费下载链接】mxnetLightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more项目地址: https://gitcode.com/gh_mirrors/mxnet1/mxnet导读本指南面向需要通过 Python 快速获得 GPU 加速能力的 MXNet 使用者围绕仓库内 PyPI 分发包的附加说明文档 CU101MKL_ADDITIONAL.md完整讲解mxnet-cu101mklCUDA 10.1 MKLDNN分发包的前置条件、平台支持、安装命令与版本选型并结合 tools/pip/setup.py 与 make/pip/pip_linux_cu101mkl.mk 等源码剖析该预编译包是如何生成、如何被打包进 pip 长描述、以及安装后如何快速验证可用性。读完本文你将能够按环境准确选型 PyPI 上的 MXNet 变体包并完成安装验证。一、前置条件平台与 CUDA 环境要求根据 CU101MKL_ADDITIONAL.mdmxnet-cu101mkl分发包支持Linux 和 Windows两个平台。需要特别说明的是该包是预编译二进制分发包安装前不需要从源码自行编译但要使 GPU 后端正常工作运行机器上需要具备与包内二进制匹配的 CUDA 运行环境该变体同时启用了 MKLDNNMKL-DNN后端面向 CPU 侧算子如卷积、池化提供加速GPU 与 CPU 加速可同时生效。CUDA Toolkit 的准备由于包内二进制针对 CUDA 10.1 编译建议安装对应版本的 CUDA Toolkit下载与安装步骤请参照 NVIDIA 官方 CUDA 下载与在线文档本仓库不代为分发 CUDA 运行时。若目标平台或 CUDA 版本与预编译包不匹配例如 Windows 下使用非官方支持版本、Raspberry Pi/ARM 等架构则应放弃 pip 预编译包改为从源码构建 MXNet——仓库根目录的 Makefile 与 make/pip/pip_linux_cu101mkl.mk 即为构建入口与配置模板。二、PyPI 分发包变体矩阵如何选型仓库中tools/pip/doc/目录下存放了与每个 PyPI 变体一一对应的附加说明文档{变体名}_ADDITIONAL.md其内容会作为 PyPI 长描述的一部分展示在对应包页面。原文档列出的变体清单如下用于帮助你按 CUDA 版本与 CPU 加速需求选型PyPI 包名CUDA 版本MKLDNN 支持适用场景mxnet-cu101mklCUDA 10.1是本文主角较新 GPU CPU 算子加速mxnet-cu101CUDA 10.1否较新 GPU纯 GPU 加速mxnet-cu100mklCUDA 10.0是CUDA 10.0 环境 CPU 加速mxnet-cu100CUDA 10.0否CUDA 10.0 环境mxnet-cu92mklCUDA 9.2是CUDA 9.2 环境 CPU 加速mxnet-cu92CUDA 9.2否CUDA 9.2 环境mxnet-cu90mklCUDA 9.0是CUDA 9.0 环境 CPU 加速mxnet-cu90CUDA 9.0否CUDA 9.0 环境mxnet-cu80mklCUDA 8.0是旧驱动/旧 GPU CPU 加速mxnet-cu80CUDA 8.0否旧驱动/旧 GPUmxnet-cu75mklCUDA 7.5是更老 GPU CPU 加速mxnet-cu75CUDA 7.5否更老 GPUmxnet-mkl无纯 CPU是无 GPU 机器上的 CPU 加速mxnet无纯 CPU否基础 CPU 安装选型要点先确认显卡驱动的 CUDA 支持版本再选择对应变体在mxnet-cu101mkl与mxnet-cu101之间若你的模型同时包含较多 CPU 端计算数据预处理、部分算子 fallback 到 CPU带 MKLDNN 的变体通常更合适。三、安装步骤1. 基础安装命令按 CU101MKL_ADDITIONAL.md 的说明安装命令为pip install mxnet-cu101mkl⚠️注意文档笔误原文档安装小节中给出的示例命令为pip install mxnet-cu100mkl但本文档对应的变体是 CU101MKLCUDA 10.1。安装 CUDA 10.1 MKLDNN 版本时应使用包名mxnet-cu101mkl请以本小节命令为准。2. 建议使用虚拟环境安装为避免与系统级 Python 包冲突推荐在虚拟环境中安装python -m venv mxnet-env source mxnet-env/bin/activate # Windows 下为 mxnet-env\Scripts\activate pip install mxnet-cu101mkl3. 安装过程中的依赖说明从 tools/pip/setup.py 可以看到MXNet 的 pip 包声明了以下运行时依赖所有变体通用numpy2.0.0,1.16.0requests2.20.0,3graphviz0.9.0,0.8.1pip 安装时会自动解析并安装这些依赖无需手动处理。同时针对 Linux 平台setup.py 会将libgfortran.so.3与libquadmath.so.0一并打包进 wheeltools/pip/setup.py避免系统缺少 Fortran 运行库导致加载失败针对 MKLDNN 变体还会额外打包libmkldnn.so.1Linux或libmkldnn.1.dylibmacOStools/pip/setup.py。四、安装后的快速验证仓库在 tools/pip/sanity_test.py 中提供了一个官方思路的冒烟测试脚本导入mxnet使用内置图像解码接口解码一张内嵌 base64 的小图并执行asnumpy()若全程无异常则输出Test succeeded否则输出Test failed并以非零码退出。安装完成后可在 Python 交互环境中执行等价验证import mxnet as mx print(mx.__version__) # 确认版本与后端加载 mx.test_utils.list_gpus() # 确认 GPU 是否可见 # 参考 sanity_test.py 的冒烟测试思路 import mxnet.ndarray as nd a nd.zeros((2, 3), ctxmx.gpu(0)) # 在 GPU 0 上创建张量 print(a)动态库加载机制说明当import mxnet时Python 端会通过 python/mxnet/libinfo.py 的find_lib_path定位libmxnet.so优先读取环境变量MXNET_LIBRARY_PATH需为绝对路径Windows 下还会自动把库所在目录追加到PATH否则依次在包目录、../../lib/、../../build/等常见位置查找POSIX 系统下会额外扫描LD_LIBRARY_PATH中的路径。因此若安装后出现libmxnet.so找不到的报错可通过显式设置MXNET_LIBRARY_PATH指向实际库文件或调整LD_LIBRARY_PATH来解决。五、源码级剖析mxnet-cu101mkl 包是如何构建与命名的1. 构建配置模板make/pip/pip_linux_cu101mkl.mk 是 Linux 下构建该 wheel 的 Makefile 配置模板其中关键编译选项包括配置项值含义USE_CUDA1启用 CUDA 后端USE_CUDA_PATH$(DEPS_PATH)/usr/local/cuda-10.1指向 CUDA 10.1 工具链USE_CUDNN1启用 cuDNNUSE_NCCL1启用 NCCL 多卡通信库USE_MKLDNN1启用 MKL-DNNMKLDNN后端USE_BLASopenblasCPU 端 BLAS 实现配合 MKLDNNUSE_DIST_KVSTORE1支持多机分布式 KVStoreUSE_OPENMP1OpenMP 并行ENABLE_CUDA_RTC1支持 Python 原生编写 CUDA kernel 运行时编译可见cu101mkl变体 CUDA 10.1 cuDNN NCCL MKLDNN的组合且默认附带分布式训练能力。2. 包名与长描述的生成逻辑tools/pip/setup.py 揭示了 PyPI 上各变体包的命名机制构建时通过环境变量mxnet_variant指定变体如CU101MKL若变体不是CPU包名被改写为mxnet_{variant.lower()}即mxnet_cu101mkl包的长描述由 tools/pip/doc/PYPI_README.md通用介绍doc/{variant}_ADDITIONAL.md即本文所讲的附加说明拼接而成再经 pandoc 转为 reStructuredText 后提交给 PyPI。这也是为什么你在 PyPI 的mxnet-cu101mkl页面上会同时看到项目通用介绍与本文档内容的原因——两个文档共同构成了该包在 PyPI 上的完整描述。3. 依赖与元数据同一份 tools/pip/setup.py 还会根据变体自动生成短描述如 “This version uses CUDA-10.1 and MKLDNN.”并在variant.endswith(MKL)时把 MKLDNN 头文件与动态库一并打进 wheel保证开箱即用。六、其他平台与构建指引Windows 用户mxnet-cu101mkl支持 Windows但若需自定义 CUDA 版本或架构建议参照仓库 Makefile 从源码构建ARM树莓派等平台PyPI 预编译包仅面向主流的 Linux/Windows x86_64 环境ARM 等平台需源码编译其他 CUDA 版本请对照第二节变体矩阵选择对应包或参考仓库 tools/pip/doc 目录下其他*_ADDITIONAL.md文档。结语mxnet-cu101mkl是 MXNet 在 PyPI 上同时融合 CUDA 10.1 GPU 加速与 MKLDNN CPU 加速的预编译分发包安装一行命令即可完成但选型前务必核对 CUDA 环境与平台支持。若需深入理解其内部构成可继续阅读 tools/pip/setup.py 与 make/pip/pip_linux_cu101mkl.mk并结合 tools/pip/sanity_test.py 的冒烟测试思路验证安装结果。【免费下载链接】mxnetLightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more项目地址: https://gitcode.com/gh_mirrors/mxnet1/mxnet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表