CUDA,cuBLAS和半精度数据类型

时间:2017-03-30 13:58:01

标签: cuda floating-point

由于CUDA 7.5 / 8.0和具有Pascal GPU的设备CUDA支持开箱即用的半精度(FP16)数据类型。另外,CUBLAS中的许多BLAS调用支持半精度类型,例如GEMM操作可用cublasHgemm。我的问题是主机不支持半精度类型。已经实施的解决方案是cublasSetMatrix,它在上传到设备期间进行转换吗?或者是否有必要创建一个棘手的实现,通过组合浮点数上传与CUDA内核进行截断浮动?

1 个答案:

答案 0 :(得分:2)

CUDA工具包目前没有提供在将数据从主机复制到设备的过程中将float数量转换为half数量的功能。

可以在主机代码或设备代码中从half转换为virtual。在任何一个地方做这件事都有利有弊。

此外,还有一个可能感兴趣的cublas<t>gemmEx函数,它可以具有不同的输入和输出(和计算)数据类型。

可能感兴趣的其他一些Lessons = new List<Lesson>();资源: