0
我試圖將一段OpenCL內核代碼移植到SideFX Houdini,使用其內部腳本語言調用VEX(代表vector expression
)使用 。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;
好的會做,非常感謝你的回覆,這很有幫助。 –