У каждого есть этот огромный массивно распараллеленный суперкомпьютер на рабочем столе в виде графического процессора.
- Что такое «привет мир» эквивалент сообщества GPU?
- Что мне делать, куда мне пойти, чтобы начать программировать GPU для основных поставщиков GPU?
-Адам
Ответы:
Проверьте CUDA от NVidia, IMO, это самая простая платформа для программирования на GPU. Есть тонны классных материалов для чтения. http://www.nvidia.com/object/cuda_home.html
Привет мир будет делать любые расчеты с использованием графического процессора.
Надеюсь, это поможет.
источник
источник
Я думаю, что другие ответили на ваш второй вопрос. Что касается первого, «Hello World» из CUDA, я не думаю, что существует установленный стандарт, но лично я бы порекомендовал параллельный сумматор (то есть программу, которая суммирует N целых чисел).
Если вы посмотрите пример «сокращения» в NVIDIA SDK, поверхностно простую задачу можно расширить, чтобы продемонстрировать многочисленные соображения CUDA, такие как объединенное чтение, конфликты в банке памяти и развертывание цикла.
Смотрите эту презентацию для получения дополнительной информации:
http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf
источник
Взгляните на ATI Stream Computing SDK . Он основан на BrookGPU, разработанном в Стэнфорде.
В будущем вся работа на GPU будет стандартизирована с использованием OpenCL . Это спонсируемая Apple инициатива, которая будет нейтральной в отношении производителей видеокарт.
источник
OpenCL - попытка сделать кроссплатформенную библиотеку, способную программировать код, подходящий, среди прочего, для графических процессоров. Он позволяет писать код, не зная, на каком графическом процессоре он будет работать, тем самым упрощая использование некоторых возможностей графического процессора, не ориентируясь конкретно на несколько типов графических процессоров. Я подозреваю, что он не так эффективен, как собственный код графического процессора (или настолько же естественен, как позволяют производители графического процессора), но компромисс может стоить того для некоторых приложений.
Он все еще находится на относительно ранних стадиях (1.1 на этот ответ), но получил некоторую популярность в отрасли - например, он изначально поддерживается в OS X 10.5 и выше.
источник
CUDA является отличной основой для начала. Это позволяет вам писать ядра GPGPU на C. Компилятор будет генерировать микрокод GPU из вашего кода и отправлять все, что работает на CPU, вашему обычному компилятору. Это только NVIDIA и работает только на картах 8-й серии или лучше. Вы можете проверить зону CUDA, чтобы увидеть, что можно сделать с ней. В CUDA SDK есть несколько замечательных демоверсий . Документация, которая поставляется с SDK, является хорошей отправной точкой для написания кода. Он проведет вас через написание ядра умножения матриц, и это отличное место для начала.
источник
Другой простой способ войти в программирование на GPU, не входя в CUDA или OpenCL, - это сделать это через OpenACC .
OpenACC работает как OpenMP с директивами компилятора (вроде
#pragma acc kernels
) для отправки работы в графический процессор. Например, если у вас большой цикл (на самом деле выигрывают только более крупные):Редактировать: к сожалению, только компилятор PGI действительно поддерживает OpenACC прямо сейчас для карт NVIDIA GPU.
источник
Попробуй GPU ++ и libSh
Ссылка LibSh содержит хорошее описание того, как они связывают язык программирования с графическими примитивами (и, очевидно, с самими примитивами), а GPU ++ описывает суть всего, и с примерами кода.
источник
Если вы используете MATLAB, становится довольно просто использовать графические процессоры для технических вычислений (матричные вычисления и сложное вычисление математических чисел). Я считаю это полезным для использования графических карт вне игр. Проверьте ссылку ниже:
http://www.mathworks.com/discovery/matlab-gpu.html
источник