评估CUDA算子适配性

更新时间:
复制 MD 格式

PPU芯片支持CUDA算子,可在PPU上编译并运行CUDA程序。通过运行NVIDIA CUDA Samples的典型用例,可评估PPUCUDA 12.4的兼容性,当前支持率达87.6%。

背景

真武810E支持CUDA算子,用户可使用CUDA语言编写程序,在PPU上编译运行。CUDA SamplesNVIDIA提供的示例程序集,涵盖内存管理、线程操作、数学运算、图像处理等主题。我们在PPU上运行这些用例,评估PPUCUDA的兼容性。

  • 机型:真武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开发训练模型

  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%。