所以我知道openCL在接受傳遞給內核的參數時有很多限制。例如,它不支持C++類類型,並且結構不能有指針作爲參數。但是,openCL是否支持將非指針結構作爲字段的結構?openCL內核中的複雜結構
舉例來說,如果我做了以下內容:
typedef struct
{
int a;
float b;
} MyStruct1;
typedef struct
{
float a;
MyStruct1 field;
} MyStruct2;
__kernel void MyKernel(const MyStruct2 *struct)
{
MyStruct1 innerStruct = struct->field;
//Do more stuff
}
^^請問這是合法的OpenCL中?如果它是合法的,我是否應該注意到有什麼特別的記憶問題?
找到你可以嘗試,如果他們做了深拷貝或淺的一個複製兩個結構和調試。如果它適用於多個128位長度的結構體,則應使用這些結構體。 – 2014-10-01 20:35:11