5. AI For Science 加速库介绍
5.1. PhysicsNeMo
PhysicsNeMo 是一个开源深度学习框架,用于构建、训练、微调和推理物理 AI 模型,使用最先进的 AI4Science 与工程领域的 SciML 方法。
PhysicsNeMo 提供 Python 模块,用于构建可扩展且优化的训练和推理管道,以探索、开发、验证和部署结合物理知识与数据的 AI 模型,实现实时预测。
无论是在探索神经算子、GNN 或转换器的使用,还是对物理知情神经网络或介于两者之间的混合方法感兴趣,PhysicsNeMo 都为您提供了优化的技术栈,使您能够大规模训练模型。
镜像使用方法:
参考 7 容器化安装部署 章节获取PhysicsNeMo镜像及启动镜像。
环境搭建:
export MACA_GRAPH_LAUNCH_MODE=0 export PYTORCH_DISABLE_CUDA_CUDNN_TF32=1 export TORCH_ALLOW_TF32_CUBLAS_OVERRIDE=0
测试方法:
cd /root/physicsnemo && ./run_pytest.sh
二进制包使用方法:
参考 7 容器化安装部署 章节获取PyTorch版本镜像及启动镜像,在沐曦开发者社区的AI For Science分区中下载二进制包。
环境搭建:
export MACA_VERSION=3.3.0.3 //实际的MACA_VERSION请根据二进制包版本号进行替换。 export MACA_PATH=/opt/maca export CUCC_PATH=$MACA_PATH/tools/cu-bridge export CUDA_PATH=$CUCC_PATH export PATH=${CUCC_PATH}/bin:${CUCC_PATH}/tools:${MACA_PATH}/bin:${CUDA_PATH}/bin:$PATH export LD_LIBRARY_PATH=${CUCC_PATH}/lib:${MACA_PATH}/lib:${MACA_PATH}/ompi/lib:${MACA_PATH}/ucx/lib:$LD_LIBRARY_PATH export PYTORCH_DEFAULT_NCHW=1 export CUBLAS_WORKSPACE_CONFIG=:4096:16 export MACA_GRAPH_LAUNCH_MODE=0 export PYTORCH_DISABLE_CUDA_CUDNN_TF32=1 export TORCH_ALLOW_TF32_CUBLAS_OVERRIDE=0
上传二进制包到root 目录下:
cd /root/ && tar -xJf maca-physicsnemo-1.0.1-py310-${MACA_VERSION}-ubuntu22.04-amd64.tar.xz //解压二进制包到root export PYTHONPATH=/root/maca-physicsnemo-1.0.1-${MACA_VERSION}/physicsnemo //设置PYTHONPATH apt-get update && apt-get install -y wget libx11-6 libgl1-mesa-glx libxrender1 xvfb libcurl4 perl cd /root/maca-physicsnemo-1.0.1-${MACA_VERSION}/physicsnemo //进入解压后的二进制包目录 pip install onnxruntime==1.18.0 ../wheel/*.whl //安装whl包,onnxruntime 为CPU版本
测试方法:
cd /root/maca-physicsnemo-1.0.1-${MACA_VERSION}/physicsnemo && pytest test/
5.2. DeepXDE
DeepXDE 是一个面向科学计算的深度学习开源库,以物理信息神经网络(PINN)为核心,支持求解常/偏微分方程、积分微分方程及分数阶方程的正反问题,并内置复杂几何建模、多保真度学习、自适应采样等算法,兼容 TensorFlow、PyTorch 等主流后端,代码简洁、配置灵活,广泛用于流体力学、热传导、逆问题优化等数值模拟场景。
镜像使用方法:
首先参考 7 容器化安装部署 章节获取DeepXDE镜像及启动镜像。
环境搭建:
运行
echo $DDE_BACKEND检查后端镜像,与当前使用的镜像(Paddle/Pytorch)是否一致,不一致请根据以下命令切换后端:Paddle 镜像后端设置:
export DDE_BACKEND=paddlePyTorch 镜像后端设置:
export DDE_BACKEND=pytorch测试方法:
cd /opt/deepxde-1.14.0/examples/ python3 [example]
5.3. Warp
Warp 是一个用于编写高性能仿真和图形代码的 Python 框架。Warp 可以将普通的 Python 函数通过 JIT 转换为高效的内核代码,能够在 CPU 或 GPU 上运行。Warp 让开发者能够轻松编写物理仿真、感知、机器人以及几何处理等领域的程序。 此外,Warp 的内核是可微分的,可以无缝集成到 PyTorch、JAX 和 Paddle 等机器学习框架的训练流程中。API 和语言参考请见官方网站。
镜像使用方法:
环境搭建:
镜像环境中已经包含有环境变量的对应设置。
测试方法:
python -m warp.tests.test_examples
二进制包使用方法:
参考 7 容器化安装部署 章节获取PyTorch版本镜像及启动镜像,在沐曦开发者社区的AI For Science分区中下载二进制包。
环境搭建:
在基础镜像中配置环境变量:
export MACA_PATH=/opt/maca export CUCC_PATH=/opt/maca/tools/cu-bridge export CUDA_PATH=/opt/maca/tools/cu-bridge export PATH=${CUCC_PATH}/bin:${CUCC_PATH}/tools:${MACA_CLANG_PATH}:${MACA_PATH}/bin:${CUDA_PATH}/bin:$PATH export LD_LIBRARY_PATH=${CUCC_PATH}/lib:${MACA_PATH}/lib:${MACA_PATH}/ompi/lib:${MACA_PATH}/ucx/lib:$LD_LIBRARY_PATH export MACA_DIRECT_DISPATCH=1
上传二进制包到当前目录下,解压二进制包,并进入解压后的目录,安装whl包:
pip install warp_lang*.whl
测试方法:
python -m warp.tests.test_examples
5.4. DGL
Deep Graph Library(DGL)是一个 Python 包,旨在现有深度学习框架(目前支持 PyTorch、MXNet 和 TensorFlow)之上轻松实现图神经网络模型系列。 它提供了灵活的消息传递控制、通过自动批处理和高度优化的稀疏矩阵内核实现速度优化,以及多 GPU/CPU 训练,可扩展到包含数亿个节点和边的图。
镜像使用方法:
首先参考 7 容器化安装部署 章节获取DGL镜像及启动镜像。
环境搭建:
export TORCH_ALLOW_TF32_CUBLAS_OVERRIDE=0
测试方法:
export DGL_HOME=/root/dgl export TORCH_ALLOW_TF32_CUBLAS_OVERRIDE=0 export LD_PRELOAD=/opt/hpcc/lib/libhcblas.so pip3 install /root/dgl/python/dist/*.whl cd /root/dgl bash scripts/run_pytest_modifed.sh -g tests/python_modifed/common bash scripts/run_pytest_modifed.sh -g tests/python_modifed/pytorch
5.5. PyG
PyG 是一个基于 PyTorch 构建的库,旨在让用户能够轻松编写和训练图神经网络,适用于处理与结构化数据相关的各种应用。 他继承了来自多篇已发表论文的、针对图和其他不规则结构进行深度学习的方法。此外,PyG 还提供了:
易于使用的迷你批处理加载器,可处理大量小图或者单个巨型图。
更好的硬件与分布式支持;支持多 GPU 训练并可通过 mcGraph 实现分布式图学习。
内置大量通用的基准数据集,并提供简单的接口供用户创建自定义数据集。
镜像使用方法:
环境搭建:
镜像环境中已经包含有环境变量的对应设置。
测试方法:
cd /src/pyg-lib && pytest
二进制包使用方法:
参考 7 容器化安装部署 章节获取PyTorch版本镜像及启动镜像,在沐曦开发者社区的AI For Science分区中下载二进制包。
环境配置:
export MACA_PATH=/opt/maca export CUCC_PATH=$MACA_PATH/tools/cu-bridge export CUDA_PATH=$CUCC_PATH export PATH=$(CUCC_PATH)/bin:$(CUCC_PATH)/tools:$(MACA_PATH)/bin:$(CUDA_PATH)/bin:$PATH export LD_LIBRARY_PATH=$(CUCC_PATH)/lib:$(MACA_PATH)/lib:$(MACA_PATH)/ompi/lib:$(MACA_PATH)/ucx/lib:$LD_LIBRARY_PATH export PYTORCH_DEFAULT_NCHW=1 export CUBLAS_WORKSPACE_CONFIG=:4096:16 apt update && apt install libmetis-dev
上传二进制包到当前目录下,解压二进制包,并进入解压后的目录,安装whl包:
pip install ./wheel/*.whl
使用方法/测试方法:
git clone https://github.com/pyg-team/pyg-lib.git cd pyg-lib && pytest