내부 스크립팅 언어 호출 인 VEX (vector expression
의 약어)를 사용하여 OpenCL 커널 코드를 SideFX Houdini로 이식하려고합니다.OpenCL get_global_id
그러나 임은 색인이하는 일과 작동 방식을 이해하는 데 문제가 있습니다. get_global_id()
은 주어진 작업 항목 (어딘가에 읽음)에 대한 작업으로 색인을 반환했지만 실제로는 그것이 무엇인지 정확하게 이해하지 못한다는 것을 알고 있습니다. (아마도 컴퓨터 코어와 관련이있을 것입니다.)
입력을 허용하는 것은 x와 y가 500 픽셀이고, 인 모든 픽셀에 몇 가지 특성이 있다고 가정하는 2D 그리드입니다 (커널로 전달한 것). 인수는 name_in
이고, name_out
은 동일한 속성 값을 업데이트해야 함), 이러한 인덱스 작업으로 무엇을하고 있습니까?
정확히 어떻게 작동합니까? 예를 들어 c
에서 어떻게 똑같이 할 수 있습니까? 많은
사전에 알레산드로 감사합니다
__kernel void rd_compute(__global float4 *a_in, __global float4 *b_in, __global float4 *c_in, __global float4 *d_in, __global float4 *e_in, __global float4 *f_in, __global float4 *g_in, __global float4 *h_in, __global float4 *i_in, __global float4 *a_out, __global float4 *b_out, __global float4 *c_out, __global float4 *d_out, __global float4 *e_out, __global float4 *f_out, __global float4 *g_out, __global float4 *h_out, __global float4 *i_out)
{
const int index_x = get_global_id(0);
const int index_y = get_global_id(1);
const int index_z = get_global_id(2);
const int X = get_global_size(0);
const int Y = get_global_size(1);
const int Z = get_global_size(2);
const int index_here = X*(Y*index_z + index_y) + index_x;
답장을 보내 주셔서 감사합니다. 답장을 보내 주셔서 감사합니다. –