Russian Qt Forum
Ноябрь 02, 2024, 13:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtOpenCL, nVidia и MinGW  (Прочитано 4152 раз)
SABROG
Гость
« : Январь 15, 2011, 23:32 »

Решил попробовать собрать. Сразу столкнулся с тем, что нигде нет инструкции как собрать библиотеку под MinGW, да к тому же nVidia не предоставляет свои библиотеки в исходниках, а предлагает скачать собранные в составе CUDA. Но чтобы этот CUDA скачать надо еще зарегистрироваться на сайте. Мучался поиском в гугле и как-то нашел прямую ссылку, чтобы качать без регистрации: CUDA 3.1

Поставил пакет. Прописал в консоли следующие переменные, чтобы gcc мог найти заголовки и библиотеки:

Код:
set LPATH=D:/Work/CUDA/lib
set CPLUS_INCLUDE_PATH=D:/Work/CUDA/include

Распаковал исходники QtOpenCL

Ну и вбил qmake && mingw32-make release

Началась сборка. Посыпалась куча варнингов и вывалилось с ошибкой сборки /demos/mandelbrot. В принципе это единственное, что не собралось.

Протестировал все примеры. Стабильно крашатся при выходе на инструкции по адресу 0 при доступе к памяти 0. Вручную собрал /demos/bezierpatch. Релизная версия не запускается нивкакую, а вот дебажная загрузилась. OpenCL даже работает, ускорение видно невооруженным глазом. Смущает только то, что окно самой демки не перемещается вообще, возникает глюк какой-то с зависоном клавы и мышки Подмигивающий да и при выходе тоже крашится. Утилита clinfo вообще никак не реагирует, запускается и тут же возвращается с кодом возврата 0.

В общем грешу я все на симбиоз библиотек собранных с помощью gcc и MSVC в одном приложении.

Где-то на форуме nVidia видел даже пост, что поддержка MinGW не планируется, видимо намекают на использование библиотеки только с gcc под *никсами.

Были ли у кого успехи вообще в этом направлении? Может все-таки можно где-то раздабыть исходники CUDA для linux, чтобы собрать под виндой или есть какие-нибудь универсальные библиотеки OpenCL, которые держат и nVidia и ATI?
---
То, почему ничего не выводит clinfo, я понял, тролли видать забыли, что приложения написанные под Windows с использованием printf, но без ключа CONFIG += console ничего не выводят. Поправил, теперь имею такую инфу:

Код:
OpenCL Platforms:
    Platform ID       : 10954264
    Profile           : FULL_PROFILE
    Version           : OpenCL 1.0 CUDA 3.1.1
    Name              : NVIDIA CUDA
    Vendor            : NVIDIA Corporation
    Extension Suffix  : NV
    Extensions        :
        cl_khr_byte_addressable_store
        cl_khr_icd
        cl_khr_gl_sharing
        cl_nv_d3d9_sharing
        cl_nv_compiler_options
        cl_nv_device_attribute_query
        cl_nv_pragma_unroll

OpenCL Devices:
    Device ID         : 10973272
    Platform ID       : 10954264
    Vendor ID         : 4318
    Type              : GPU
    Profile           : FULL_PROFILE
    Version           : OpenCL 1.0 CUDA
    Driver Version    : 258.96
    Language Version  : OpenCL 1.0
    Name              : GeForce GTS 250
    Vendor            : NVIDIA Corporation
    Available         : true
    Compute Units     : 16
    Clock Frequency   : 1512 MHz
    Address Bits      : 32
    Byte Order        : Little Endian
    Max Work Size     : 512x512x64
    Max Items/Group   : 512
    Local Memory      : 16 kB
    Global Memory     : 1023 MB
    Global Cache Type : None
    Global Cache Size : 0 kB
    Cache Line Size   : 0
    Max Alloc Size    : 255 MB
    Max Constant Size : 64 kB
    Max Constant Args : 9
    Separate Local    : true
    Alignment         : 32 (min 16)
    Max Param Bytes   : 4352
    Error Correction  : false
    Unified Memory    : false
    Float Support     : InfinityNaN RoundNearest RoundZero RoundInfinity FusedMu
ltiplyAdd
    Double Support    : No
    Half Float Support: No
    Image Support     : 2D, 3D
    Max 2D Image Size : 8192x8192
    Max Samplers      : 16
    Max Read Images   : 128
    Max Write Images  : 8
    Max 3D Image      : 2048x2048x2048
    Writable 3D Images: false
    Has Compiler      : true
    Native Kernels    : false
    Out of Order Exec : true
    Preferred Vector Sizes:
        char1, short1, int1, long1, float1
    Extensions        :
        cl_khr_byte_addressable_store
        cl_khr_icd
        cl_khr_gl_sharing
        cl_nv_d3d9_sharing
        cl_nv_compiler_options
        cl_nv_device_attribute_query
        cl_nv_pragma_unroll
        cl_khr_global_int32_base_atomics
        cl_khr_global_int32_extended_atomics


« Последнее редактирование: Январь 15, 2011, 23:55 от SABROG » Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1 : Январь 16, 2011, 20:04 »

А если компилировать с MSVC то всё работает нормально?
Записан
SABROG
Гость
« Ответ #2 : Январь 17, 2011, 15:17 »

Не знаю, MSVC у меня не стоит, я им не пользуюсь.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #3 : Январь 17, 2011, 20:47 »

Ну я так понимаю, что не попробовав собирать с MSVC не поймешь действительно ли тут виноват именно "симбиоз библиотек собранных с помощью gcc и MSVC в одном приложении".
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 23.