NVIDIA GPU中__hmul是否使用FP32核心?半精度运算核心问询
Hopper架构中半精度标量乘法指令的执行核心说明
核心结论
在NVIDIA Hopper架构的SM中,__hmul和__hmul2这类半精度(FP16)标量乘法指令确实会依托FP32 CUDA核心完成计算。
工作机制详解
- 操作数转换与运算流程:当执行
__hmul或__hmul2时,硬件会先将FP16类型的输入操作数转换为FP32格式,送入FP32核心执行乘法运算。运算完成后:- 对于
__hmul,结果会被转换回FP16格式输出; - 对于
__hmul2,结果直接以FP32格式输出(该设计的目的是避免半精度乘法带来的数值溢出或精度损失)。
- 对于
- 硬件兼容逻辑:Hopper的FP32核心本身具备向下兼容低精度运算的硬件逻辑,无需为标量FP16运算单独设计专用核心,这种复用既节省硬件资源,又能保证标量运算的精度需求。
- 与向量/矩阵FP16运算的区别:如果是大规模的FP16向量运算或矩阵乘法,Hopper会优先调用Tensor Core以获得更高吞吐量,但标量级的FP16运算(如
__hmul这类单元素操作)仍由FP32核心处理。
内容的提问来源于stack exchange,提问作者irasin
相关产品推荐
相关产品推荐

