ما هو Perror () المكافئ لرموز الخطأ في OpenCL؟
-
25-09-2019 - |
سؤال
إذا كان لدي شيء مثل:
err = clEnqueueReadBuffer(cmdQueue, output, CL_TRUE, 0, sizeof(float) * data_sz, &results, 0, NULL, NULL);
أود أن أفعل:
if (err != CL_SUCCESS){
perror("Read Failed!");
}
لكن ثوابت الخطأ مثل "CL_HOST_OUT_OF_MEMORY" وما شابه ذلك (من المفهوم) غير معروف لـ Perror ().
يمكن أن أتجول في ملفات .H المرتبطة بـ OpenCL ، لكن هذا ليس حلاً مثاليًا. أنا منفتح على أي طرق أخرى مريحة لتتبع أرقام الأخطاء. أنا على OSX Snow Leopard (بما في ذلك ذلك فقط في حالة ، لكنني لا أعتقد أنه مناسب)
المحلول
إذا كان لديك NVIDIA OPENCL SDK ، فيمكنك استخدام oclErrorString()
وظيفة توفرها Oclutils.
نصائح أخرى
لا يوجد حاليا. انتهى بي الأمر بكتابة بلدي ، بأسلوب gluErrorString()
. لقد لصق للتو كل cl_error
الرموز في ملف ومعالجة كل سطر في EMACs لتحويله إلى مجموعة من الحالات داخل عبارة التبديل (للسماح بإدخالات متقطعة) التي تعيد سلاسل ثابتة. كان من السهل جدا ، ومفيد جدا. يمكنني نشره في مكان ما إذا أردت.
لا تنتمي إلى StackOverflow