4. 编程接口
MXMACA C++为熟悉C++编程语言的用户提供了一种简单的途径,可以轻松编写由沐曦GPU设备执行的程序。MXMACA C++由C++语言的最小扩展集,MXMACA运行时API和MXMACA人工智能和计算库组成。
4.1. MXMACA C++语言扩展
MXMACA C++语言扩展允许程序员将核函数定义为 C++ 函数,并在每次调用函数时使用一些新句法来指定ND-Range和Workgroup维度。 任何包含这些扩展的源文件都必须使用mxcc进行编译,详情参见《曦云® 系列通用GPU mxcc编译器用户指南》。
4.2. MXMACA运行时API
MXMACA运行时API提供了在主机上执行的C和C++函数,用于分配和释放设备内存、在主机内存和设备内存之间传输数据以及管理具有多个设备的系统。 运行时API的详细介绍,参见《曦云® 系列通用GPU运行时API编程指南》。
4.3. MXMACA人工智能和计算库
支持的MXMACA人工智能和计算库,参见表 4.1。
序号 |
MXMACA 库 |
描述 |
|---|---|---|
1 |
mcBLAS |
基础线性代数程序集 |
2 |
mcFFT |
快速傅里叶变换库 |
3 |
mcDNN |
深度神经网络库 |
4 |
mcRAND |
生成高质量伪随机和准随机数字 |
5 |
mcThrust |
基于标准模板库的MXMACA C++模板库 |
6 |
mcCUB |
C++头库,为MXMACA编程模型的每层提供可重用的软件组件 |
7 |
mcSPARSE |
稀疏矩阵和向量的基本线性代数子程序 |
8 |
mcPyTorch |
mcPyTorch基于PyTorch 2.0/2.1 版本,在MXMACA环境中运行,并支持CPU和MXMACA设备上的张量操作 |
9 |
mcSOLVER |
基于mcBLAS和mcSPARSE库的高级包 |
4.4. 开发人工智能相关应用
开发人工智能相关应用,具体文档参见表 4.2。
序号 |
开发文档 |
描述 |
|---|---|---|
1 |
AI推理用户手册 |
指导用户如何使用MacaRT推理引擎,将训练好的模型部署到曦云系列GPU上 |
2 |
AI训练用户手册 |
指导用户在AI训练的场景下,如何使用曦云系列GPU进行人工智能算法的训练 |
4.5. 视频编解码相关应用
开发视频编解码相关应用,具体文档参见表 4.3。
序号 |
开发文档 |
描述 |
|---|---|---|
1 |
视频编解码VPU编程指南 |
指导用户如何使用曦云系列GPU视频编解码VPU,进行硬件加速的软件开发方法 |
4.6. 开发数据中心相关应用
开发数据中心相关应用的文档,具体文档参见表 4.4。
序号 |
开发文档 |
描述 |
|---|---|---|
1 |
mcDF使用手册 |
指导用户在曦云系列GPU上安装部署mcDF和使用mcDF |
2 |
mcPy使用手册 |
指导用户在曦云系列GPU上安装部署mcPy和使用mcPy |
3 |
mcFaiss使用手册 |
指导用户在曦云系列GPU上安装部署mcFaiss和使用mcFaiss |
4 |
mxvs测试工具套件使用手册 |
沐曦验收测试套件(MetaX Validation Suite,mxvs) |