2. 使用 mcSPARSE API
本章介绍如何使用mcSPARSE库的API。
2.1. 安装mcSPARSE
mcSPARSE是与MXMACA工具包一同发布并安装的库。MXMACA工具包的安装,参见《曦云系列通用计算GPU 快速上手指南》。 在安装MXMACA工具包后,请确保已设置环境变量 MACA_PATH。
export MACA_PATH=/opt/maca
mcSPARSE API相关文件如下所示。
#header location:
${MACA_PATH}/include/mcsparse
#lib location:
${MACA_PATH}/lib/libmcsparse.so
在使用mcSPARSE库编译代码之前,请确保已设置环境变量ISU_FASTMODEL为1。
export ISU_FASTMODEL=1
2.2. 标量参数
在 mcSPARSE API 中,标量参数 alpha 和 beta 可以通过主机或设备上的引用来传递。
返回标量结果的少数函数,比如 nnz(),会通过主机或设备上的引用返回结果值。
虽然这些函数会立即返回,类似于那些返回矩阵和向量结果的函数,但是直到在GPU上执行完整个程序后,标量结果才会准备好。
当用户尝试从主机读取这个标量结果时,需要适当地同步这个操作。
这一特性使得mcSPARSE库函数可以完全异步地使用流进行执行,即使alpha和beta是由前一个内核生成的。 例如,当使用该库来实现线性系统和特征值问题的迭代求解方法时,就会出现这种情况。