鲲鹏社区首页
中文
注册
鲲鹏统一并行加速库

鲲鹏统一并行加速库

鲲鹏统一并行加速库(KUPL)是基于鲲鹏处理器深度优化的并行加速库,包括多线程编程,数据管理,矩阵编程三类基础与扩展功能,结合鲲鹏处理器硬件特性,提供优化的调度与同步算法、异步数据搬运等差异化能力,从高性能,高易用角度为鲲鹏平台应用加速提供助力

众核并行
  • 算子间并行,提供基于graph,queue的任务依赖描述能力,实现算子动态负载均衡运行
  • 算子内并行,实现面向多维度数据的自动任务拆分与并发执行功能
  • 核间同步,提供低时延同步,规约接口
数据管理
  • 异步内存拷贝,实现多级内存数据移动
  • 共享内存通信,加速NUMA间数据移动
  • 多级内存申请,提供高效内存申请能力
矩阵编程
  • 简化Matrix computation编程,实现矩阵分块、矩阵乘、矩阵读取与保存能力

关键特性

parallel for并行
KUPL的parallel for并行接口是实现多线程编程的一种方法,实现类openMP parallel for导语能力,多线程并行加速for循环操作,并提供静态和动态两种策略 KUPL的parallel for并行接口通常用来定义算子内并行的计算逻辑,可以与计算图编程和多队列编程的算子间并行的能力搭配使用
多队列编程
KUPL提供让用户定义队列、事件的能力,并通过将算子提交到队列上执行实现多线程的并行执行与依赖关系定义
计算图编程
KUPL提供让用户定义静态图的能力,并通过将静态图提交到动态图中执行实现多线程的并行执行与负载均衡调度

其他资源

文档
KUPL开发指导文档
代码样例
KUPL代码样例和使用指导
在线课程
KUPL使用教程