我尝试使用 cublasGemmEx 进行矩阵乘法。A和b是1X1半矩阵。如果我将计算类型和输出日期类型设置为 CUDA_R_16F,结果始终为零。如果我将计算类型和输出日期类型设置为 CUDA_R_32F,结果是正确的。
有谁知道为什么如果我将类型设置为 CUDA_R_16F 结果为零?感谢您提前的答复。
我的cuda版本是10.2,gpu是T4。我使用命令 'nvcc -arch=sm_75 test_cublas.cu -o test_cublas -lcublas' 构建以下代码
#include "cublas_v2.h"
#include "library_types.h"
#include <stdio.h>
__global__ void init_kernel(half *a, half *b, half *c_half, float *c_float)
{
*a = __float2half_rn(1.0);
*b = __float2half_rn(1.5);
*c_half = __float2half_rn(0.0);
*c_float = 0.0;
}
__global__ void print_gpu_values(half *a, half *b, half *c_half, float *c_float)
{
printf("a %f, b %f, c_half %f, c_float %f\n", __half2float(*a), __half2float(*b), __half2float(*c_half), *c_float);
}
int main(int argc, char **argv)
{
cudaStream_t cudaStream;
if (cudaSuccess …Run Code Online (Sandbox Code Playgroud)