OpenCL錯誤碼轉字符串

OpenCL錯誤碼轉字符串(以中文表示)

錯誤代碼位:0 ~ -19、-30 ~ -68

const char* errorCodeToString(cl_int errCode) {
	const char* err = NULL;
	switch (errCode) {
	case CL_SUCCESS:
		err = "CL_SUCCESS:命令成功執行,沒有出現錯誤!";
		break;
	case CL_DEVICE_NOT_FOUND:
		err = "CL_DEVICE_NOT_FOUND:未發現與條件匹配的OpenCL設備!";
		break;
	case CL_DEVICE_NOT_AVAILABLE:
		err = "CL_DEVICE_NOT_AVAILABLE:OpenCL設備目前不可用!";
		break;
	case CL_COMPILER_NOT_AVAILABLE:
		err = "CL_COMPILER_NOT_AVAILABLE:程序由源代碼創建,不過沒有可用的OpenCL C編譯器!";
		break;
	case CL_MEM_OBJECT_ALLOCATION_FAILURE:
		err = "CL_MEM_OBJECT_ALLOCATION_FAILURE:無法爲內存對象或圖像對象分配內存!";
		break;
	case CL_OUT_OF_RESOURCES:
		err = "CL_OUT_OF_RESOURCES:沒有足夠的資源執行命令!";
		break;
	case CL_OUT_OF_HOST_MEMORY:
		err = "CL_OUT_OF_HOST_MEMORY:宿主機上沒有足夠的內存執行命令!";
		break;
	case CL_PROFILING_INFO_NOT_AVAILABLE:
		err = "CL_PROFILING_INFO_NOT_AVAILABLE:無法得到事件的性能評測信息或者命令隊列不支持性能評測!";
		break;
	case CL_MEM_COPY_OVERLAP:
		err = "CL_MEM_COPY_OVERLAP:兩個緩衝區在同一個內存區域重疊!";
		break;
	case CL_IMAGE_FORMAT_MISMATCH:
		err = "CL_IMAGE_FORMAT_MISMATCH:圖像未採用相同的圖像格式!";
		break;
	case CL_IMAGE_FORMAT_NOT_SUPPORTED:
		err = "CL_IMAGE_FORMAT_NOT_SUPPORTED:不支持指定的圖像格式!";
		break;
	case CL_BUILD_PROGRAM_FAILURE:
		err = "CL_BUILD_PROGRAM_FAILURE:無法爲程序構建可執行代碼!";
		break;
	case CL_MAP_FAILURE:
		err = "CL_MAP_FAILURE:內存區域無法映射到宿主機內存!";
		break;
	case CL_MISALIGNED_SUB_BUFFER_OFFSET:
		err = "CL_MISALIGNED_SUB_BUFFER_OFFSET:子緩衝區偏移不對中!";
		break;
	case CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST:
		err = "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST:等待列表中事件的執行狀態錯誤!";
		break;
	case CL_COMPILE_PROGRAM_FAILURE:
		err = "CL_COMPILE_PROGRAM_FAILURE:編譯程序失敗!";
		break;
	case CL_LINKER_NOT_AVAILABLE:
		err = "CL_LINKER_NOT_AVAILABLE:鏈接器不可用!";
		break;
	case CL_LINK_PROGRAM_FAILURE:
		err = "CL_LINK_PROGRAM_FAILURE:鏈接程序失敗!";
		break;
	case CL_DEVICE_PARTITION_FAILED:
		err = "CL_DEVICE_PARTITION_FAILED:設備分區失敗!";
		break;
	case CL_KERNEL_ARG_INFO_NOT_AVAILABLE:
		err = "CL_KERNEL_ARG_INFO_NOT_AVAILABLE:內核參數信息不可用!";
		break;


	case CL_INVALID_VALUE:
		err = "CL_INVALID_VALUE:命令的一個或多個參數指定了非法值!";
		break;
	case CL_INVALID_DEVICE_TYPE:
		err = "CL_INVALID_DEVICE_TYPE:傳入的設備類型不是合法值!";
		break;
	case CL_INVALID_PLATFORM:
		err = "CL_INVALID_PLATFORM:傳入的平臺不是合法值!";
		break;
	case CL_INVALID_DEVICE:
		err = "CL_INVALID_DEVICE:傳入的設備不是合法值!";
		break;
	case CL_INVALID_CONTEXT:
		err = "CL_INVALID_CONTEXT:傳入的上下文不是合法值!";
		break;
	case CL_INVALID_QUEUE_PROPERTIES:
		err = "CL_INVALID_QUEUE_PROPERTIES:設備不支持命令隊列屬性!";
		break;
	case CL_INVALID_COMMAND_QUEUE:
		err = "CL_INVALID_COMMAND_QUEUE:傳入的命令隊列不是合法值!";
		break;
	case CL_INVALID_HOST_PTR:
		err = "CL_INVALID_HOST_PTR:宿主機指針不合法!";
		break;
	case CL_INVALID_MEM_OBJECT:
		err = "CL_INVALID_MEM_OBJECT:傳入的內存對象不是合法值!";
		break;
	case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR:
		err = "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR:傳入的圖像格式描述符不是合法值!";
		break;
	case CL_INVALID_IMAGE_SIZE:
		err = "CL_INVALID_IMAGE_SIZE:設備不支持這個圖像大小!";
		break;
	case CL_INVALID_SAMPLER:
		err = "CL_INVALID_SAMPLER:傳入的採樣工具不是合法值!";
		break;
	case CL_INVALID_BINARY:
		err = "CL_INVALID_BINARY:傳入了非法的二進制程序!";
		break;
	case CL_INVALID_BUILD_OPTIONS:
		err = "CL_INVALID_BUILD_OPTIONS:一個或多個構建選項不合法!";
		break;
	case CL_INVALID_PROGRAM:
		err = "CL_INVALID_PROGRAM:傳入的程序不是合法值!";
		break;
	case CL_INVALID_PROGRAM_EXECUTABLE:
		err = "CL_INVALID_PROGRAM_EXECUTABLE:程序未能成功地構建命令隊列關聯設備上的一個可執行程序!";
		break;
	case CL_INVALID_KERNEL_NAME:
		err = "CL_INVALID_KERNEL_NAME:程序中不存在指定的內核!";
		break;
	case CL_INVALID_KERNEL_DEFINITION:
		err = "CL_INVALID_KERNEL_DEFINITION:程序源代碼中定義的內核不合法!";
		break;
	case CL_INVALID_KERNEL:
		err = "CL_INVALID_KERNEL:傳入的內核不是合法值!";
		break;
	case CL_INVALID_ARG_INDEX:
		err = "CL_INVALID_ARG_INDEX:參數索引指示的參數對於內核不合法!";
		break;
	case CL_INVALID_ARG_VALUE:
		err = "CL_INVALID_ARG_VALUE:對於一個非局部參數,內核參數值爲NULL;或者對於一個局部參數,內核參數值爲非NULL!";
		break;
	case CL_INVALID_ARG_SIZE:
		err = "CL_INVALID_ARG_SIZE:參數大小與內核參數不一致!";
		break;
	case CL_INVALID_KERNEL_ARGS:
		err = "CL_INVALID_KERNEL_ARGS:一個或多個內核參數未賦值!";
		break;
	case CL_INVALID_WORK_DIMENSION:
		err = "CL_INVALID_WORK_DIMENSION:工作維度值不是介於1~3的一個值!";
		break;
	case CL_INVALID_WORK_GROUP_SIZE:
		err = "CL_INVALID_WORK_GROUP_SIZE:局部或全局工作組大小不合法!";
		break;
	case CL_INVALID_WORK_ITEM_SIZE:
		err = "CL_INVALID_WORK_ITEM_SIZE:一個或多個工作項大小超出了設備支持的最大大小!";
		break;
	case CL_INVALID_GLOBAL_OFFSET:
		err = "CL_INVALID_GLOBAL_OFFSET:全局偏移量超出了所支持的界限!";
		break;
	case CL_INVALID_EVENT_WAIT_LIST:
		err = "CL_INVALID_EVENT_WAIT_LIST:提供的等待列表大小不合法或者其中包含非事件!";
		break;
	case CL_INVALID_EVENT:
		err = "CL_INVALID_EVENT:傳入的事件不是一個合法值!";
		break;
	case CL_INVALID_OPERATION:
		err = "CL_INVALID_OPERATION:執行命令導致出現一個不合法的操作!";
		break;
	case CL_INVALID_GL_OBJECT:
		err = "CL_INVALID_GL_OBJECT:OpenGL引用的對象存在問題!";
		break;
	case CL_INVALID_BUFFER_SIZE:
		err = "CL_INVALID_BUFFER_SIZE:指定的緩衝區大小越界!";
		break;
	case CL_INVALID_MIP_LEVEL:
		err = "CL_INVALID_MIP_LEVEL:爲OpenGL紋理指定的mipmap級別對於OpenGL對象不合法!";
		break;
	case CL_INVALID_GLOBAL_WORK_SIZE:
		err = "CL_INVALID_GLOBAL_WORK_SIZE:傳入的全局工作大小不合法,可能爲0或者超出了設備支持的大小!";
		break;
	case CL_INVALID_PROPERTY:
		err = "CL_INVALID_PROPERTY:傳入無效的屬性!";
		break;
	case CL_INVALID_IMAGE_DESCRIPTOR:
		err = "CL_INVALID_IMAGE_DESCRIPTOR:傳入無效的圖像描述符!";
		break;
	case CL_INVALID_COMPILER_OPTIONS:
		err = "CL_INVALID_COMPILER_OPTIONS:傳入無效的編譯器選項!";
		break;
	case CL_INVALID_LINKER_OPTIONS:
		err = "CL_INVALID_LINKER_OPTIONS:傳入無效的鏈接器選項!";
		break;
	case CL_INVALID_DEVICE_PARTITION_COUNT:
		err = "CL_INVALID_DEVICE_PARTITION_COUNT:傳入無效的設備分區計數!";
		break;
	default:
		err = "未知錯誤";
	}
	return err;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章