评估CUDA算子适配性

更新时间:
复制为 MD 格式

背景

真武810E支持CUDA算子的写法,用户可以使用CUDA语言编写程序,在PPU上编译后运行。CUDA SamplesNVIDIA提供的一系列示例程序,旨在帮助开发者学习如何使用CUDA技术进行GPU加速计算。这些示例覆盖了从基础到高级的各种主题,包括但不限于内存管理、线程操作、数学运算以及图像处理等。通过研究这些例子,开发者可以更好地理解如何有效地利用GPU的并行处理能力来加速他们的应用程序。我们基于这些用例考察在PPU机型上是否可以正常运行,从而在一定程度上评估PPU对于CUDA的兼容性。

  • 机型:真武810E 16

  • 存储:智算CPFS/NAS

  • 镜像:dsw-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/pai/training-xpu-pytorch:pai-ppu-llm-1.0

  • git仓库:https://github.com/NVIDIA/cuda-samples

  • 使用产品组件:PAI-DSW

环境构建

  1. 构建DSW:基于上述步骤中的镜像构建DSW实例,详细步骤请参考PAI上使用PPU开发训练模型

    image.png

  2. 下载代码

    cd /path/to/your/workspace/cuda # 此处替换为您的实际路径
    git clone https://github.com/NVIDIA/cuda-samples.git 
    git checkout -b v12.4

操作命令

请参考下列例子,使用上完全遵循CUDA的编译方式和执行方式。(用例只关注兼容性和可用性,性能指标不代表真实性能)。

  1. vectorAdd为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/0_Introduction/vectorAdd # 此处替换为您的实际路径
    #编译并运行测试
    make
    ./vectorAdd

    image.png

  2. matrixMul_nvrtc为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/0_Introduction/matrixMul_nvrtc # 此处替换为您的实际路径
    make
    ./matrixMul_nvrtc

    image.png

  3. cudaTensorCoreGemm为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/3_CUDA_Features/cudaTensorCoreGemm # 此处替换为您的实际路径
    make
    ./cudaTensorCoreGemm

    image.png

  4. bf16TensorCoreGemm为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/3_CUDA_Features/cudaTensorCoreGemm # 此处替换为您的实际路径
    make
    ./cudaTensorCoreGemm

    image.png

  5. reduction为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/2_Concepts_and_Techniques/reduction # 此处替换为您的实际路径
    make
    ./reduction

    image.png

  6. tf32TensorCoreGemm算子为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/3_CUDA_Features/cudaTensorCoreGemm # 此处替换为您的实际路径
    make
    ./cudaTensorCoreGemm

    image.png

  7. bandwidthTest为例。

    cd /path/to/your/workspace/cuda/cuda-samples/Samples/3_CUDA_Features/cudaTensorCoreGemm # 此处替换为您的实际路径
    make
    ./cudaTensorCoreGemm

    image.png

总结

PPU芯片已最新支持CUDA 12.4版本,在总共121项大语言模型算法相关的CUDA sample中,PPU芯片支持106支持率达到87.6%,具体的支持清单,请参考CUDA兼容性