From 3c7c09b1c3a3bfefc0a0fb870d39c6f1175dd92d Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Mon, 17 Apr 2023 20:45:27 +0800 Subject: [PATCH] vault backup: 2023-04-17 20:45:27 --- 04. Programming/OpenCL.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/04. Programming/OpenCL.md b/04. Programming/OpenCL.md index d77df9d..7c24189 100644 --- a/04. Programming/OpenCL.md +++ b/04. Programming/OpenCL.md @@ -157,10 +157,16 @@ this->kernel.setArg(6, clBlueHistogram); ## 10. 執行 kernel 並設定工作組大小 ```cpp -auto err = queue.enqueueNDRangeKernel(this->kernel, cl::NullRange, cl::NDRange(imageWidth, imageHeight)); +auto err = queue.enqueueNDRangeKernel(this->kernel, cl::NullRange, cl::NDRange(imageWidth, imageHeight), cl::NullRange); if (err != CL_SUCCESS) { printf("OpenCL kernel error. err = %d\n", err); } ``` +第一個參數是[[OpenCL#6. 建立 kernel]]所建立的kernel。 +第二個參數是偏移量,我們假設它在所有維度上都是 0。`cl::NullRange` 對象將滿足該 0 規範。 +**第三個參數是全局大小,它指定希望執行與內核對象K**關聯的內核源代碼中指定的工作項 +第四個參數是本地大小,它指定應將多少工作項分組到一個工作組中。 + +重點在於第三個參數,因為 GPU 可以平行運算,這裡指定說我們的資料需要幾個 ## 11. 讀回資料 \ No newline at end of file