У меня есть программа OpenCL, которая использует функцию enqueue_kernel внутри моего родительского ядра.
В настоящее время после вызова enqueue_kernel в качестве кода ошибки enqueue_kernel возвращает «-11».
Коды ошибок CLK_XXX (возвращаемые значения enqueue_kernel), перечисленные в спецификации, не перечислены нигде в документах или заголовочных файлах, поэтому я не знаю, какой код я получаю. Как я могу заставить свое ядро возвращать значимые ошибки?
Кроме того, спецификация утверждает, что, включив флаг "-g" во время clBuildProgram, enqueue_kernel вернет больше подробных кодов. Однако, когда я добавляю «-g» в свой список флагов, я получаю ошибку компиляции, говорящую, что «-g» флаг не распознан. У меня есть последние драйверы NVidia, которые официально поддерживают OpenCL1.2 и неофициально поддерживают OpenCL2.0 (я не использую какие-либо неподдерживаемые функции из 2.0, которые мне известны, только неофициально поддерживаемые). Я предполагаю, что получаю ошибку компиляции с «-g», потому что она пока официально или неофициально не поддерживается NVidia. Есть ли способ заставить последние драйверы NVidia выкладывать ошибки? Может быть, другой флаг?
В качестве примечания, я могу заставить enqueue_kernel работать на некоторых дочерних ядрах, а не на других ... так что дело не в том, что enqueue_kernel просто не поддерживается на моих драйверах / оборудовании, поэтому мне нужно понимать коды ошибок, которые я ' Я получаю.