OpenCL operators
參考:https://www.khronos.org/registry/OpenCL/sdk/1.0/docs/man/xhtml/
int4 vec = (int4)(1, 2, 3, 4); vec += 4;//每一個元素加上4 vec &= (int4)(-1, -1, 0, -1); //按位與 vec.s01 = vec.s23 < 7; // true -1 , false 0
數據傳輸轉換操作
相同類型的數據直接使用"="進行賦值。
// 將標量數組 保存到 向量中 // 函數vload // vector vloadn(size_t offset, const __(g|c|l|p) scalar *mem)
// offset*向量大小 為在標量數組中的偏置位置 // float array[10]={0,1,2,3,4,5,6,7,8,9} float4 vec = vload4(1, array); // offset 表示vector在array 中的索引,結果4,5,6,7 vec = vload4(0,array); //結果 0 1 2 3 vec = vload(1,array+2); //結果 2 3 4 5
// 將向量 保存到 標量數組中 // 函數 vstoren // void vstoren(vector vec, size_t offset, __(g|l|p) scalar *mem) // offset*向量大小 為 在 數組中的偏置位置
浮點型計算的相關內置函數
算數運算函數
詳情可以參考:https://www.khronos.org/registry/OpenCL/sdk/1.0/docs/man/xhtml/ OpenCL Compiler--->Built-in Functions--->Math Functions
比較函數
指數和對數運算函數
三角函數
一些常量
其他浮點函數
整型加減函數
整型乘法函數
其他整型函數