運行在NVIDIA GPU簡單的OpenCL矩陣乘法代碼,我得到錯誤代碼-30。我想知道這段代碼是什麼意思。我相信這個代碼(int)對應的字符串必須存儲在某個地方。有人可以幫我解釋這段代碼嗎?一旦我知道這個錯誤意味着我可以輕鬆地調試我的代碼。在哪裏可以找到OpenCL中(英偉達)的錯誤代碼字符串?
0
A
回答
2
從CLEW庫:
const char* clewErrorString(cl_int error)
{
static const char* strings[] =
{
// Error Codes
"CL_SUCCESS" // 0
, "CL_DEVICE_NOT_FOUND" // -1
, "CL_DEVICE_NOT_AVAILABLE" // -2
, "CL_COMPILER_NOT_AVAILABLE" // -3
, "CL_MEM_OBJECT_ALLOCATION_FAILURE" // -4
, "CL_OUT_OF_RESOURCES" // -5
, "CL_OUT_OF_HOST_MEMORY" // -6
, "CL_PROFILING_INFO_NOT_AVAILABLE" // -7
, "CL_MEM_COPY_OVERLAP" // -8
, "CL_IMAGE_FORMAT_MISMATCH" // -9
, "CL_IMAGE_FORMAT_NOT_SUPPORTED" // -10
, "CL_BUILD_PROGRAM_FAILURE" // -11
, "CL_MAP_FAILURE" // -12
, "" // -13
, "" // -14
, "" // -15
, "" // -16
, "" // -17
, "" // -18
, "" // -19
, "" // -20
, "" // -21
, "" // -22
, "" // -23
, "" // -24
, "" // -25
, "" // -26
, "" // -27
, "" // -28
, "" // -29
, "CL_INVALID_VALUE" // -30
, "CL_INVALID_DEVICE_TYPE" // -31
, "CL_INVALID_PLATFORM" // -32
, "CL_INVALID_DEVICE" // -33
, "CL_INVALID_CONTEXT" // -34
, "CL_INVALID_QUEUE_PROPERTIES" // -35
, "CL_INVALID_COMMAND_QUEUE" // -36
, "CL_INVALID_HOST_PTR" // -37
, "CL_INVALID_MEM_OBJECT" // -38
, "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR" // -39
, "CL_INVALID_IMAGE_SIZE" // -40
, "CL_INVALID_SAMPLER" // -41
, "CL_INVALID_BINARY" // -42
, "CL_INVALID_BUILD_OPTIONS" // -43
, "CL_INVALID_PROGRAM" // -44
, "CL_INVALID_PROGRAM_EXECUTABLE" // -45
, "CL_INVALID_KERNEL_NAME" // -46
, "CL_INVALID_KERNEL_DEFINITION" // -47
, "CL_INVALID_KERNEL" // -48
, "CL_INVALID_ARG_INDEX" // -49
, "CL_INVALID_ARG_VALUE" // -50
, "CL_INVALID_ARG_SIZE" // -51
, "CL_INVALID_KERNEL_ARGS" // -52
, "CL_INVALID_WORK_DIMENSION" // -53
, "CL_INVALID_WORK_GROUP_SIZE" // -54
, "CL_INVALID_WORK_ITEM_SIZE" // -55
, "CL_INVALID_GLOBAL_OFFSET" // -56
, "CL_INVALID_EVENT_WAIT_LIST" // -57
, "CL_INVALID_EVENT" // -58
, "CL_INVALID_OPERATION" // -59
, "CL_INVALID_GL_OBJECT" // -60
, "CL_INVALID_BUFFER_SIZE" // -61
, "CL_INVALID_MIP_LEVEL" // -62
, "CL_INVALID_GLOBAL_WORK_SIZE" // -63
, "CL_UNKNOWN_ERROR_CODE"
};
if (error >= -63 && error <= 0)
return strings[-error];
else
return strings[64];
}
有一個nVIDIA的版本,這些AMD的版本。但我更喜歡以OpenSource的方式進行操作。
1
如果您在C++的時候,你可以在Boost.Compute庫使用opencl_error::to_string()
功能。這將返回一個std::string
與一OpenCL的錯誤代碼人類可讀的描述。
例如:
std::cout << opencl_error::to_string(CL_INVALID_KERNEL_ARGS) << std::cout;
會打印:
"Invalid Kernel Arguments"
在這裏看到的文檔:http://boostorg.github.io/compute/boost/compute/opencl_error.html
相關問題
- 1. 如何調試與英偉達顯卡的OpenCL內核代碼?
- 2. 我在哪裏可以找到nsis錯誤代碼?
- 3. 哪裏可以找到Windows運行時的COM錯誤代碼?
- 4. ASP.NET錯誤在哪裏可以找到?
- 5. 我在哪裏可以找到JSHint數字錯誤代碼的列表?
- 6. 哪裏可以找到TortoiseSvn Subwcrev錯誤代碼列表?
- 7. 哪裏可以找到python解釋器錯誤代碼?
- 8. 哪裏可以找到PEAR DB錯誤代碼列表?
- 9. 哪裏可以找到Worklight錯誤代碼列表
- 10. 哪裏可以找到代碼塊
- 11. 哪裏可以找到代碼隱藏?
- 12. 哪裏可以找到這個錯誤?
- 13. 我在哪裏可以在NetSuite中找到'salespricehtml'的代碼?
- 14. 我在哪裏可以找到MySQL的SQLException錯誤代碼列表?
- 15. 我在哪裏可以找到CreateProcess錯誤代碼的詳細信息?
- 16. 我在哪裏可以找到Vigenere密碼的Java源代碼?
- 17. PHP源代碼中增加字符串的代碼在哪裏?
- 18. 找不到代碼中的語法錯誤在哪裏
- 19. System.IO.FileNotFoundException。我在哪裏可以找到哪條路是錯誤的?
- 20. 代碼錯誤在哪裏
- 21. 我在哪裏可以找到C#中的字符常量?
- 22. 我在哪裏可以找到C++的generic.h的源代碼?
- 23. 哪裏可以找到openCL編程的圖形卡規範?
- 24. 哪裏可以找到JDK中的本地代碼?
- 25. 哪裏可以找到`lib-dynload`中模塊的源代碼?
- 26. 我在哪裏可以找到編譯器的代碼?
- 27. 在哪裏可以找到Linux系統調用的源代碼?
- 28. 我在哪裏可以找到J2ME的源代碼?
- 29. 我在哪裏可以找到TagLib#庫的源代碼?
- 30. 我在哪裏可以找到TextView.setText(..)方法的源代碼?
感謝您的快速幫助。順便說一下,如上所示的字符串映射的錯誤代碼是標準的一部分?如果是這樣那麼NVIDIA想必也這樣 – gpuguy
使用它,我編輯了更安全的方式。是的,代碼是'cl.h'文件的一部分。 – DarkZeros
這也正是我一直在尋找 – gpuguy