使用KUPL API进行并行计算加速
KUPL当前对外优化特性分为三大模块,具体为众核并行、数据管理和矩阵编程:
- 一:众核并行模块对外提供了包含egroup、多线程编程、计算图编程、多队列多流编程等KUPL API用以多线程并行计算加速;
- 二:数据管理模块对外提供了包含内存管理、共享内存通信等KUPL API用以数据拷贝或通信加速;
- 三:矩阵编程模块对外提供了张量定义、张量计算等KUPL API用以加速矩阵乘计算。
具体上述KUPL特性模块的优化使能方式,可以参考KUPL sample代码仓。
KUPL sample代码仓中提供了一组使用KUPL优化特性的示例代码及特定场景KUPL最优实现代码,从而供用户快速上手使能KUPL特性。
KUPL sample的根目录包含4个顶层目录,分别对应众核并行模块、数据管理模块、矩阵编程模块及KUPL综合用例,每个模块的顶层目录再包含模块对应重点特性的用例目录,最终用例目录下挂载具体特性用例的sample代码、makefile及readme说明介绍。具体sample运行方式如下。
- 节点上安装HPCkit,HPCKit安装指导请参见《Kunpeng HPCKit 25.1.0 安装指南》:
- KUPL sample所需要环境变量的加载。
- Git拉取KUPL sample代码仓代码至本地服务器上。
git clone https://gitee.com/openeuler/kupl-sample.git
- 编译运行KUPL sample代码仓代码,当前支持两种方式:
- 一键式全量编译安装。
- KUPL-sample根目录下执行sh build.sh,在所有特性的目录下生成对应特性的可执行二进制。
- 根目录下执行如cd mt/graph/到KUPL某一具体特性的目录下。
- 执行make run运行生成的二进制得到运行结果。
- 按需编译安装。
- 根目录下执行如cd mt/graph/到KUPL某一具体特性的目录下。
- 执行make指令编译生成该特性对应的二进制文件。
- 执行make run指令运行生成的二进制得到运行结果。
- 一键式全量编译安装。
父主题: 使用指导