我有两个关于OpenCL内核的内存提取大小的问题。
在内核中,我只是在for循环中放入一个for循环语句和一个printf语句。
目前,我传递两个参数,一个浮点数组和一个整数,它决定了for循环的循环次数。
但是,当我为循环次数传递0时(换句话说,我让内核无效),内核获取0.3125千字节。
为什么内核会获取该内存量?
我的另一个问题是 当发生缓存未命中时,为什么内核占用的内存小于缓存行的大小?
谢谢!
编辑 这是我的内核
__kernel void sequence(__global float *input, const unsigned int N) {
size_t id = get_global_id(0);
for(int i = 0; i < N; i++) {
printf("Val: %f \n", input[i]);
}
}