opencl(三)----創建、編譯程序(cl_program)、創建內核


1、創建程序

// 從文本中創建程序
cl_program clCreateProgramWithSource (    
        cl_context context,      // 上下文
     cl_uint count,             //文本個數
     const char **strings,   // 程序文本
     const size_t *lengths,  //每個程序文本的長度
     cl_int *errcode_ret     //錯誤碼
)

編譯程序

cl_int clBuildProgram (    
        cl_program program,         //程序
     cl_uint num_devices,        //設備數量
     const cl_device_id *device_list,  //設備列表
     const char *options,          //編譯選項
     void (*pfn_notify)(cl_program, void *user_data),
     void *user_data
)

2、獲取程序信息

// 獲取程序信息
cl_int clGetProgramInfo (    
        cl_program program,   //程序
     cl_program_info param_name,  //信息類型名稱
     size_t param_value_size,       //要保存的大小
     void *param_value,              //保存的地址
     size_t *param_value_size_ret   //應有的大小
)

3、獲取編譯信息

cl_int clGetProgramBuildInfo (    
        cl_program  program,
     cl_device_id  device,
     cl_program_build_info  param_name,  //編譯信息參數
     size_t  param_value_size,
     void  *param_value,
     size_t  *param_value_size_ret
)
//常用的編譯信息參數   CL_PROGRAM_BUILD_LOG  查看編譯日志

4、創建內核

// 為程序中的每個函數創建內核
cl_int clCreateKernelsInProgram (    
     cl_program  program,  //程序
     cl_uint num_kernels,   // 數量
     cl_kernel *kernels,     //核地址
     cl_uint *num_kernels_ret  //獲取應該有的數量
)

獲取內核信息

// 獲取核信息
cl_int clGetKernelInfo (    
        cl_kernel kernel,        //
     cl_kernel_info param_name,  //信息名稱
     size_t param_value_size,
     void *param_value,
     size_t *param_value_size_ret
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM