Иногда нужно исправлять ошибки в библиотеках и их модифицировать.
И нужно понимать когда и зачем применять те или иные алгоритмы и структуры данных.
Так же их размер или другие заморочки не дают их использовать на специфичных устройствах.
Чтобы «вдохновиться», советую примеры использования CUDA почитать/пощупать. Сегодня полдня сидел, восторгался. Жена аж офонарела: сидит муж, уткнулся носом в компутер, гоняет какие-то шарики и ржет как ненормальный :)
Цифры меня поразили: расчеты на моей дохленькой 9600 (64 ядра) чуть ли не на два порядка быстрее, чем на CPU. Вдохновился, теперь надо что-нибудь свое набыдлокодить (есть у меня задачи, где надо проводить «на лету» сложные расчеты с изображениями на скорости до 300 кадров в секунду)...
CUDA хороша для работы с целыми числами (% а для дробных проще CPU использовать.
Отлично она float'ы считает. Вот double - да, не получится. Но с изображениями и float'ов хватает. А насчет CPU, что лучше: ждать час, пока у вас одно изображение «посчитается», или минуту-другую?
А еще я читал, что там надежность меньше, чем у обычного процессора. Графическая память и процессор сильно разогнаны и инвесия бит является нормой. Для картинки это не важно, но вот если рассчитывать в графической карте что-нибудь важное - то это может быть проблемой.
Software-Based ECC for GPUs
Naoya Maruyama, Akira Nukada,Satoshi Matsuoka
Tokyo Institute of Technology
July 2009, SAAHPC’09 @ NCSA
Если бы уж заниматься чем-нибудь действительно сложным, я бы предпочел FPGA общего назначения с возможностью вкомпилирования в него алгоритмов, написанных на высокоуровневом языке.
>Чтобы «вдохновиться», советую примеры использования CUDA почитать/пощупать.
«Ох ёёёё...» — только и смог из себя выдавить вылезший из криокамеры динозавр, ещё недавно сидевший за монохромным терминалом ЕС 1840 с 512 Кб оперативки и 20 Мб винтом.