На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> Не работает OpenCL в 32 битах
    Прога под Win64 работает прекрасно. Драйвер определяется как "OpenCL 3.0 CUDA 12.0.89".
    Под Win32 не хочет. Т.е. ни одна функция не выполняется, выдаёт исключение. К примеру, даже:
    C++
    ExpandedWrap disabled
      cl_uint qty_platforms = 0;
      cl_int ret = clGetPlatformIDs(0, NULL, &qty_platforms);
    выдаёт исключение "Module not found", хотя 32-битный OpenCL.dll есть.

    P.S. В песочнице всё работает...

    P.P.S. На всякий случай: установлен NVIDIA CUDA Toolkit v11.8.
      Переустановил все дрова – эффекта ноль (сначала всё удалил – проверил, потом установил дрова видеокарты – проверил, потом установил CUDA – всё то же самое).

      Какой-то глюк системный. Даже при удалении всех дров поведение то же. DLL-ка остаётся в системе, но при вызове любой функции происходит, видимо, обращение к какому-то невалидному адресу или вызов какой-то невалидной функции.

      Странно, что в песочнице всё работает...
      Сообщение отредактировано: Jin X -
        Короче, проблема была из-за файла intelocl32_emu.dll в Intel oneAPI. Убрал файл - всё заработало.
        Переустановил oneAPI - опять глюк начался. Короче, просто переименовал этот файл в *.bak, вот и всё решение :)
          Цитата Jin X @
          Короче, проблема была из-за файла intelocl32_emu.dll в Intel oneAPI. Убрал файл - всё заработало.

          А как в цепочке opencl.dll -> драйвер участвует эта dll?
            B.V., он грузит кучу разных модулей, выполняет кучу вызовов InitOnceExecuteOnce и пр. Попробуй посмотреть в ProcessMonitor что происходит. Один вызов clGetPlatformIDs тянет за собой куку DLL-ок, ключей реестра и пр. Ему же нужно получить список всех устройств, которые могут выполнять код (CPU, GPU и пр), опросить их характеристики.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0254 ]   [ 15 queries used ]   [ Generated: 3.02.23, 19:39 GMT ]