Intermediary float cast is necessary for cuda 11.8

This commit is contained in:
Nicolas Patry
2023-08-25 11:54:30 +00:00
parent 1c1e34735e
commit be371e827c

View File

@ -13,13 +13,13 @@ extern "C" __global__ void FN_NAME( \
const size_t *strides = info + num_dims; \
if (is_contiguous(num_dims, dims, strides)) { \
for (unsigned int i = blockIdx.x * blockDim.x + threadIdx.x; i < numel; i += blockDim.x * gridDim.x) { \
out[i] = static_cast<DST_TYPENAME>(inp[i]); \
out[i] = (DST_TYPENAME) (float) inp[i]; \
} \
} \
else { \
for (unsigned int i = blockIdx.x * blockDim.x + threadIdx.x; i < numel; i += blockDim.x * gridDim.x) { \
unsigned strided_i = get_strided_index(i, num_dims, dims, strides); \
out[i] = static_cast<DST_TYPENAME>(inp[strided_i]); \
out[i] = (DST_TYPENAME) (float) inp[strided_i]; \
} \
} \
} \