[英]Char*** in OpenCL kernel argument?
我需要將vector<vector<string>>
傳遞給內核 OpenCL。 最簡單的方法是什么? 傳遞一個char***
給我一個錯誤:
__kernel void vadd(
__global char*** sets,
__global int* m,
__global long* result)
{}
錯誤:clBuildProgram(CL_BUILD_PROGRAM_FAILURE)
在 OpenCL 1.x 中,這種事情基本上是不可能的。 您需要將數據轉換為適合單個緩沖區對象,或至少適合固定數量的緩沖區對象。 主機上的指針在設備上沒有意義。 (使用 OpenCL 2 的 SVM 功能,您可以在主機和內核代碼之間傳遞指針值,但您仍然需要確保以適合於此的方式分配內存。)
我能想到的一種選擇是,記住我對程序的其余部分一無所知,如下所示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.