我为两个矩阵的元素乘法构建了一个内核,但至少在我的配置中,当每个矩阵大于2GB时,我的OpenCL内核只会更快.所以我想知道,如果是因为我的天真内核(见下文)或者因为元素操作的本质,这意味着元素操作不会因使用GPU而获益.
感谢您的输入!
核心:
KERNEL_CODE = """
// elementwise multiplication: C = A .* B.
__kernel void matrixMul(
__global float* C,
__global float* A,
__global float* B,
int width, int height)
{
// ID
int x = get_global_id(0);
int y = get_global_id(1);
// Multiplying
C[y * height + x ] = A[y * height + x] * B[y * height + x];
}
"""
Run Code Online (Sandbox Code Playgroud)
ps我读了一些专家认为,CUDA与OpenCL有太大的不同,无法在同一个问题中回答这两个问题,可以自由地从标题和标签中删除它.