1.创建一个函数库句柄
句柄包含了库的一些上下文信息,如使用的数据结构格式,用于计算的设备端的使用。
2.分配设备内存
一般使用cudaMalloc分配设备内存,在使用多GPU编程库时,需要使用API来分配设备内存。
3.将输入数据转换为函数库支持的格式
如程序的数组是行优先,但是cuda库只接受按列优先存储的数组,这种时候就要进行数据转换了,但是也可以在创建的时候保持与cuda库的数据格式一致。
4.将输入数据传送到设备内存
在使用cublas库时,使用的就是cublasSetVector。
5.配置函数库
一般情况下只是传递一些需要的参数。
6.执行
7.取回设备内存中的结果
8.将数据转换为原始格式
9.释放cuda资源