| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: data_structure_for_hpc:课内实验1_基于不同存储结构的求和算子实现 Co-authored-by: qq_61043250<3189967342@qq.com> # message auto-generated for no-merge-commit merge: !677 merge contrib/01_base into test feat: data_structure_for_hpc:课内实验1_基于不同存储结构的求和算子实现 Created-by: qq_61043250 Commit-by: qq_61043250 Merged-by: cann-robot Description: # 课内实验1 ## 描述 在“面向高性能计算的数据结构”课程第1章“绪论”中,新增课内实验1“基于不同存储结构的求和算子实现” 本实验面向“面向高性能计算的数据结构”课程中的线性表存储结构主题,要求使用 Ascend C 语言分别基于顺序存储和链式存储两种方式组织同一组序列数据,并开发对应的求和算子,对长度为 N 的数字序列完成累加求和。 实验中,顺序存储采用连续内存中的数组形式保存数据;链式存储使用数组保存元素值和后继索引,通过逻辑链接完成遍历。两种方式在逻辑上都表示同一条线性表,仅在物理存储布局和访存路径上存在差异。 通过对两种实现的正确性和运行时间进行对比,观察并分析:顺序存储由于数据连续,具有更好的空间局部性和更高的连续访存效率;链式存储由于结点分散、访问跳转频繁,会带来更大的访存开销。因此,在相同计算任务下,顺序存储版本的求和算子通常表现出更优的执行性能。。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/01_base/01_00_extra_ascendc_sum_op_various_storage_struct.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 # 课外实验1 ## 描述 在“面向高性能计算的数据结构”课程第1章“绪论”中,新增课外实验“面向ReLU算子的多核并行与流水线实现” ReLU是深度学习模型中常用的逐元素激活函数,其计算关系简单,但能够清晰体现一维连续数据在异构计算设备上的组织方式、片上搬运过程和向量化计算方式。本实验围绕 ReLU向量算子展开,在Ascend C环境中采用静态Tensor编程方式实现ReLU算子。实验以Host侧CPU参考结果作为校验基准,在Device侧将输入向量按tile划分,从Global Memory搬入UB中的LocalTensor,调用Maxs向量接口完成y=max(x,0)的逐元素计算,并将结果写回Global Memory。通过本任务,能够理解简单逐元素算子在NPU上的基本执行流程,并能够从正确性、误差和性能三个方面分析实验结果。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/01_base/01_01_extra_ascendc_static_tensor_relu_vector.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 # 课内实验4 ## 描述 在“面向高性能计算的数据结构”课程第4章“算子开发与性能评价”中,新增课内实验4“基于 CANN的Softmax 算子优化” Softmax是深度学习中常见的归一化算子,常用于分类模型输出层。本实验要求使用Ascend C语言完成一个Softmax自定义算子的实现,并基于统一工程对算子进行正确性验证和基础性能测试。本实验以二维张量最后一维上的Softmax计算为对象,要求在CANN环境下完成Host侧数据准备、Device侧算子实现、结果验证和性能统计。实验中输入张量采用float类型,按行执行Softmax计算,并通过多组输入规模观察算子的运行表现。通过本实验,应理解Softmax的计算特征、Ascend C自定义算子的基本开发流程,以及归约类算子与逐元素算子在实现方式上的差异。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/04_operator_development/04_00_extra_ascendc_cann_softmax.ipynb.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 See merge request: cann/cann-learning-hub!677 | 1 天前 | |
北林:补充课外实验2.1基于并行广度优先遍历的网络故障诊断 Co-authored-by: zh1125<1395823581@qq.com> # message auto-generated for no-merge-commit merge: !690 merge add_hpc_chapter2_bfs_diagnosis into test 北林:补充课外实验2.1基于并行广度优先遍历的网络故障诊断 Created-by: zh1125 Commit-by: zh1125 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!690 | 1 天前 | |
feat: 新增分布式计算章节实验 Co-authored-by: theorycs<1139645295@qq.com> # message auto-generated for no-merge-commit merge: !781 merge contrib/experiment-upload into test feat: 新增分布式计算章节实验 Created-by: theorycs Commit-by: theorycs Merged-by: cann-robot Description: ## 描述 在“面向高性能计算的数据结构”课程第3章“分布式计算”中,新增4个分布式计算实验。 本次新增实验包括: - 03.01 基于HCCL的分布式字符串词频统计实验 基于HCCL集合通信实现分布式字符串词频统计,通过多设备协同完成数据划分、局部统计与结果聚合。 - 03.02 基于一致性哈希环的分布式哈希表模拟实验 实现一致性哈希环及分布式哈希表的数据映射过程,模拟节点加入、退出时的数据重新分布与局部迁移。 - 03.03 分布式B+树结构动态更新与局部数据迁移实验 模拟分布式B+树的数据组织与动态更新过程,实现节点变化场景下的索引调整及局部数据迁移。 - 03.04 基于HCCL的稀疏图分片与全局度数统计实验 基于CSR结构组织图数据,并结合HCCL完成多设备间的图分区信息通信与结果聚合。 ## 关联的Issue 无。 ## 测试 - Notebook已在华为在线Notebook环境完整执行通过; - CPU版本和NPU版本均能够正常编译和运行; - 已验证CANN9.0.0、Ascend 910B4环境; - 已验证CANN 8.5.0、Ascend 910B3环境; - Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 - 新增: 1. contrib/tutorials/data_structure_for_hpc/03_distributed_computing/03.01_inclass_hccl_string_statistics.ipynb 2. contrib/tutorials/data_structure_for_hpc/03_distributed_computing/03.02_extra_consistent_hash_table.ipynb 3. contrib/tutorials/data_structure_for_hpc/03_distributed_computing/03.03_extra_distributed_bplus_tree.ipynb 4. contrib/tutorials/data_structure_for_hpc/03_distributed_computing/03.04_extra_hccl_csr_graph_partition.ipynb - 更新: - contrib/tutorials/data_structure_for_hpc/README.md - README中新增第3章4个实验的课程入口。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x] 其他,请描述:新增实验 ## 其他信息 无。 See merge request: cann/cann-learning-hub!781 | 1 天前 | |
feat: data_structure_for_hpc:课内实验1_基于不同存储结构的求和算子实现 Co-authored-by: qq_61043250<3189967342@qq.com> # message auto-generated for no-merge-commit merge: !677 merge contrib/01_base into test feat: data_structure_for_hpc:课内实验1_基于不同存储结构的求和算子实现 Created-by: qq_61043250 Commit-by: qq_61043250 Merged-by: cann-robot Description: # 课内实验1 ## 描述 在“面向高性能计算的数据结构”课程第1章“绪论”中,新增课内实验1“基于不同存储结构的求和算子实现” 本实验面向“面向高性能计算的数据结构”课程中的线性表存储结构主题,要求使用 Ascend C 语言分别基于顺序存储和链式存储两种方式组织同一组序列数据,并开发对应的求和算子,对长度为 N 的数字序列完成累加求和。 实验中,顺序存储采用连续内存中的数组形式保存数据;链式存储使用数组保存元素值和后继索引,通过逻辑链接完成遍历。两种方式在逻辑上都表示同一条线性表,仅在物理存储布局和访存路径上存在差异。 通过对两种实现的正确性和运行时间进行对比,观察并分析:顺序存储由于数据连续,具有更好的空间局部性和更高的连续访存效率;链式存储由于结点分散、访问跳转频繁,会带来更大的访存开销。因此,在相同计算任务下,顺序存储版本的求和算子通常表现出更优的执行性能。。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/01_base/01_00_extra_ascendc_sum_op_various_storage_struct.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 # 课外实验1 ## 描述 在“面向高性能计算的数据结构”课程第1章“绪论”中,新增课外实验“面向ReLU算子的多核并行与流水线实现” ReLU是深度学习模型中常用的逐元素激活函数,其计算关系简单,但能够清晰体现一维连续数据在异构计算设备上的组织方式、片上搬运过程和向量化计算方式。本实验围绕 ReLU向量算子展开,在Ascend C环境中采用静态Tensor编程方式实现ReLU算子。实验以Host侧CPU参考结果作为校验基准,在Device侧将输入向量按tile划分,从Global Memory搬入UB中的LocalTensor,调用Maxs向量接口完成y=max(x,0)的逐元素计算,并将结果写回Global Memory。通过本任务,能够理解简单逐元素算子在NPU上的基本执行流程,并能够从正确性、误差和性能三个方面分析实验结果。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/01_base/01_01_extra_ascendc_static_tensor_relu_vector.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 # 课内实验4 ## 描述 在“面向高性能计算的数据结构”课程第4章“算子开发与性能评价”中,新增课内实验4“基于 CANN的Softmax 算子优化” Softmax是深度学习中常见的归一化算子,常用于分类模型输出层。本实验要求使用Ascend C语言完成一个Softmax自定义算子的实现,并基于统一工程对算子进行正确性验证和基础性能测试。本实验以二维张量最后一维上的Softmax计算为对象,要求在CANN环境下完成Host侧数据准备、Device侧算子实现、结果验证和性能统计。实验中输入张量采用float类型,按行执行Softmax计算,并通过多组输入规模观察算子的运行表现。通过本实验,应理解Softmax的计算特征、Ascend C自定义算子的基本开发流程,以及归约类算子与逐元素算子在实现方式上的差异。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/04_operator_development/04_00_extra_ascendc_cann_softmax.ipynb.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 See merge request: cann/cann-learning-hub!677 | 1 天前 | |
feat: 北林数据结构-课外实验4.1-低精度矩阵乘法优化实验 Co-authored-by: m0_73961305<985244569@qq.com> # message auto-generated for no-merge-commit merge: !500 merge contrib/04-01-low-precision-gemm into test feat: 北林数据结构-课外实验4.1-低精度矩阵乘法优化实验 Created-by: m0_73961305 Commit-by: m0_73961305 Merged-by: cann-robot Description: ## 描述 在“面向高性能计算的数据结构”课程中新增第四章“算子开发”的课内实验 04.01“低精度矩阵乘法优化实验”。 本实验围绕稠密矩阵乘法 GEMM 展开,首先在 CPU 上实现串行 FP64 GEMM,作为正确性和性能基线;随后基于 Ascend C 静态 Tensor 编程方式,在昇腾 NPU 的 AI Vector 核上分别实现 FP32 和 FP16 GEMM,比较不同计算精度对数据存储、数据搬运、数值误差和执行性能的影响。 实验主要包含以下内容: - 在 Host 侧生成确定性的 FP64 输入矩阵,并从同一组输入分别转换得到 FP32 和 FP16 数据; - 使用 CPU FP64 串行 GEMM 生成参考结果; - 在 AI Vector 核上实现 FP32 和 FP16 GEMM; - 使用行方向任务划分、列方向分块和多核并行完成矩阵计算; - FP32 和 FP16 核函数分别保持对应精度的乘法、累加和输出; - 使用最大绝对误差和最大相对误差验证低精度计算结果; - 使用端到端总时间和相对 CPU FP64 基线的加速比分析性能; - Notebook 通过 %%writefile 生成完整实验工程,包括公共源码、Host 程序、Device 核函数、CMake 配置和运行脚本。 FP32 与 FP16 实现采用相同的 Vector 计算流程,但根据数据类型和数据搬运对齐要求使用不同的分块参数: - FP32:行块大小为 8,连续搬运按照 8 个元素对齐; - FP16:行块大小为 16,连续搬运按照 16 个元素对齐; - 正式实验矩阵规模为 \(M=N=K=4096\); - 随机种子为 20260717; - NPU 核函数预热 5 次,重复运行 30 次。 ## 关联的Issue 无。 ## 测试 ### Notebook 检查 - Notebook 文件能够正常解析,是有效的 JSON 文件; - Notebook 共包含 58 个单元; - 提交前已清除所有 code cell 的保存输出,保存输出数量为 0; - 未发现对外部 ./images、./src、../images 或 ../src 路径的依赖; - Notebook 内通过 %%writefile 提供实验所需的完整工程文件。 See merge request: cann/cann-learning-hub!500 | 19 天前 | |
feat: data_structure_for_hpc:课内实验1_基于不同存储结构的求和算子实现 Co-authored-by: qq_61043250<3189967342@qq.com> # message auto-generated for no-merge-commit merge: !677 merge contrib/01_base into test feat: data_structure_for_hpc:课内实验1_基于不同存储结构的求和算子实现 Created-by: qq_61043250 Commit-by: qq_61043250 Merged-by: cann-robot Description: # 课内实验1 ## 描述 在“面向高性能计算的数据结构”课程第1章“绪论”中,新增课内实验1“基于不同存储结构的求和算子实现” 本实验面向“面向高性能计算的数据结构”课程中的线性表存储结构主题,要求使用 Ascend C 语言分别基于顺序存储和链式存储两种方式组织同一组序列数据,并开发对应的求和算子,对长度为 N 的数字序列完成累加求和。 实验中,顺序存储采用连续内存中的数组形式保存数据;链式存储使用数组保存元素值和后继索引,通过逻辑链接完成遍历。两种方式在逻辑上都表示同一条线性表,仅在物理存储布局和访存路径上存在差异。 通过对两种实现的正确性和运行时间进行对比,观察并分析:顺序存储由于数据连续,具有更好的空间局部性和更高的连续访存效率;链式存储由于结点分散、访问跳转频繁,会带来更大的访存开销。因此,在相同计算任务下,顺序存储版本的求和算子通常表现出更优的执行性能。。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/01_base/01_00_extra_ascendc_sum_op_various_storage_struct.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 # 课外实验1 ## 描述 在“面向高性能计算的数据结构”课程第1章“绪论”中,新增课外实验“面向ReLU算子的多核并行与流水线实现” ReLU是深度学习模型中常用的逐元素激活函数,其计算关系简单,但能够清晰体现一维连续数据在异构计算设备上的组织方式、片上搬运过程和向量化计算方式。本实验围绕 ReLU向量算子展开,在Ascend C环境中采用静态Tensor编程方式实现ReLU算子。实验以Host侧CPU参考结果作为校验基准,在Device侧将输入向量按tile划分,从Global Memory搬入UB中的LocalTensor,调用Maxs向量接口完成y=max(x,0)的逐元素计算,并将结果写回Global Memory。通过本任务,能够理解简单逐元素算子在NPU上的基本执行流程,并能够从正确性、误差和性能三个方面分析实验结果。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/01_base/01_01_extra_ascendc_static_tensor_relu_vector.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 # 课内实验4 ## 描述 在“面向高性能计算的数据结构”课程第4章“算子开发与性能评价”中,新增课内实验4“基于 CANN的Softmax 算子优化” Softmax是深度学习中常见的归一化算子,常用于分类模型输出层。本实验要求使用Ascend C语言完成一个Softmax自定义算子的实现,并基于统一工程对算子进行正确性验证和基础性能测试。本实验以二维张量最后一维上的Softmax计算为对象,要求在CANN环境下完成Host侧数据准备、Device侧算子实现、结果验证和性能统计。实验中输入张量采用float类型,按行执行Softmax计算,并通过多组输入规模观察算子的运行表现。通过本实验,应理解Softmax的计算特征、Ascend C自定义算子的基本开发流程,以及归约类算子与逐元素算子在实现方式上的差异。 运行脚本能够自动识别CANN安装路径和昇腾处理器型号,并根据当前实验环境完成工程配置、编译和运行。 ## 关联的Issue 无 ## 测试 ·Notebook已在华为在线Notebook环境完整执行通过; ·CPU版本和NPU版本均能够正常编译和运行; ·已验证CANN 9.0.0、Ascend 910B4环境; ·已验证CANN 8.5.0、Ascend 910B3环境; ·Notebook能够生成完整的CPU和NPU工程代码。 ## 文档更新 ·新增 ·contrib/tutorials/data_structure_for hpc/04_operator_development/04_00_extra_ascendc_cann_softmax.ipynb.ipynb ·更新: ·contrib/tutorials/data_structure_for_hpc/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [x ] 其他,请描述: 新增实验 ## 其他信息 无 See merge request: cann/cann-learning-hub!677 | 1 天前 |

课程简介
随着人工智能的普及与发展,高性能计算需求的不断增长,传统CPU串行模式下的数据结构教学已难以适配技术的发展。本课程依托于华为昇腾计算平台与CANN技术体系,构建高性能计算场景下的数据结构模块化实验。实验内容涵盖了并行计算、分布式计算、算子开发等核心内容,每个实验均提供了可运行的Ascend C程序,可结合华为ICT学院与此配套的体系化课程进行深入学习。通过实验课程,指导学习者使用Ascend C编程,面向昇腾NPU完成算子的设计、实现、调试和优化,培养从数据结构、算法设计到性能评价的系统工程能力。
适合人群
建议学习者具备C/C++基础和数据结构基础,但不要求事先有Ascend C编程经验。
- 对并行计算、分布式计算或算子开发感兴趣,希望系统学习数据结构与并行算法的学习者;
- 具备数据结构基础,希望进一步了解高性能场景下的数据组织、存储与并行算法实现的学习者;
- 对华为昇腾计算平台与Ascend C算子开发感兴趣的学习者。
学习目标
- 理解面向高性能计算的数据结构设计原理
- 掌握并行算法设计与实现的基本方法
- 具备面向华为昇腾平台的算子开发实践能力
课程支持的硬件产品
| 硬件产品 | 验证状态 |
|---|---|
| Atlas A2 系列产品 | ✅ 已验证 |
已验证软件版本:CANN 9.0.0。
已验证的在线体验环境
- gitcode 在线体验 Notebook
- CANNLab 云开发环境
- NPU 镜像模板:
cann_9.0.0_py3.11-A2-arm - 规格:
1*NPU 910B3 16vCPUs 32GiB - Python 内核:Python 3.11.15
- NPU 镜像模板:
CANNLab 环境创建与使用方法请参考 CANNLab 环境体验指南。
课程章节目录
第一章:高性能计算基础
| Notebook | Link | 状态 |
|---|---|---|
| 01.00 基于不同存储结构的求和算子实现 | - | 🚧 待内测 |
| 01.01 基于静态 Tensor 的 ReLU 向量算子 | - | 🚧 待内测 |
第二章:并行计算
| Notebook | Link | 状态 |
|---|---|---|
| 02.00 基于平衡二叉树的并行前缀和实现实验 | 在线体验 | ✅ 已发布 |
| 02.01 基于并行广度优先遍历的网络故障诊断实验 | - | 🚧 待内测 |
| 02.02 矩阵乘法分块优化实验 | 在线体验 | ✅ 已发布 |
| 02.03 稀疏矩阵存储格式与分块计算优化实验 | - | 🚧 待内测 |
第三章:分布式计算
| Notebook | Link | 状态 |
|---|---|---|
| 03.01 基于HCCL的分布式字符串词频统计实验 | - | 🚧 待内测 |
| 03.02 基于一致性哈希环的分布式哈希表模拟实验 | - | 🚧 待内测 |
| 03.03 分布式B+树结构动态更新与局部数据迁移实验 | - | 🚧 待内测 |
| 03.04 基于 HCCL 的 CSR 图分区实验 | - | 🚧 待内测 |
第四章:算子开发
| Notebook | Link | 状态 |
|---|---|---|
| 04.00 基于 CANN的Softmax 算子优化 | - | 🚧 待内测 |
| 04.01 低精度矩阵乘法优化实验 | - | 🚧 待内测 |
| 04.02 卷积分类头前向计算实现与优化 | - | 🚧 待内测 |
| 04.03 RMSNorm向量算子实现与流水优化 | - | 🚧 待内测 |