Когда я создаю буфер и позже освобождаю буфер функцией clReleaseMemObject, всегда есть что-то странное, например, если я задаю размер буфера как 128 КБ + 8В, тогда всегда возникает исключение (часто, но не каждый раз, это всегда происходит после нескольких обычных исполнений), но если я задаю размер как 128 КБ или 256 КБ или какой-то другой размер как интегральная мощность 2, то clReleaseMemObject всегда может работать хорошо. Я не совсем уверен, есть ли ограничение в размере буфера в OpenCL, кто-нибудь знает какие-либо последствия для этой проблемы? Благодаря!clReleaseMemObject в OpenCL
1
A
ответ
0
Есть некоторые ограничения, связанные с выравниванием суббуферов, но они должны влиять на предыдущие вызовы, а не на тот, который освобождает объект mem. Другим является, например, CL_DEVICE_MAX_MEM_ALLOC_SIZE, но действительная реализация не позволит создавать буферы/изображения, если эти правила не соблюдаются.
Ваша проблема связана с некоторыми переполнениями буфера.
Смежные вопросы
- 1. создание суббуфера в openCL
- 2. Очистка буфера OpenCL clEnqueueMapBuffer
- 3. Параметры передачи в функции в OpenCL
- 4. Очистка OpenCl вызывает segfault
- 5. Ошибка создания opencl-программы
- 6. Запуск программы OpenCl
- 7. Mandelbrot in OpenCL
- 8. Неизвестная ошибка в программе OpenCL
- 9. OpenCL do Мне нужно освободить указатель на хост
- 10. случайная ошибка сегментации на GPU/код OpenCL/OpenGL
- 11. Как удалить ошибку CL_INVALID_PLATFORM в opencl-коде?
- 12. Euclidean distance using OpenCL
- 13. OpenCL Ограничить размер петли?
- 14. OpenCL clCreateBuffer() сбой программы
- 15. OPENCL добавить матрицу
- 16. Первая программа OpenCL
- 17. Intel OpenCL Vs. Khronos OpenCL
- 18. Настройка аргументов ядра в OpenCL
- 19. OpenCL - Сбой ядра при втором запуске
- 20. OpenCl Ошибка -40
- 21. Макросы Variadic в OpenCL: Где они поддерживаются?
- 22. Двойные прецизионные вариации в OpenCL printf
- 23. Реализация алгоритма сокращения на openCL
- 24. Ядро OpenCL для конкатенации строк
- 25. Простая программа OpenCL не работает
- 26. Запись OpenCL в OS X
- 27. OpenCL/CPU. Проверьте, доступна ли среда OpenCL
- 28. Имитация OpenCL 1.1 с OpenCL 1.2
- 29. Что такое global_work_size и local_work_size в умножении матриц в OpenCL?
- 30. Получение неправильного вывода в параллельном коде в OpenCL
* "тогда исключение всегда происходит" * - Что * "исключение" *? Сбой программы? Вызывает ли это фактическое исключение C++? В результате возникает код ошибки OpenCL (и, если да, каков этот код ошибки)? Или вы используете C++ API и получаете исключение, возникшее в результате кода ошибки OpenCL (в этом случае опять-таки, какой именно код ошибки)? Если это нечасто, это может быть связано с чем-то более или менее несвязанным, например, с кучевым повреждением в коде процессора или что-то еще. Или, может быть, вы его сопоставляете и записываете в пределах 128 КБ + 8В. Или, возможно, это проблема выравнивания. –
Во всяком случае, для решения этой проблемы потребуется немного больше информации. –