Здравствуйте. Задача стоит такая: необходимо ускорить вычисления с вещественными числами . А так же с векторами и матрицами. Применительно к 3д-графике через OpenGL. Есть ли библиотеки , которые ускорили бы эти вычисления , используя новые возможности сопроцессора ? ээ... то есть конечно они есть Но кто пользовался? У кого есть какая-либо информация по этому вопросу ? , а так же опыт работы с этими решениями . Оставьте пару строчек. С нетерпением жду совета Заранее большое спасибо. p.s. О существовании гугла знаю.
Вы про MMX и SSE? Не знаю даже что сказать. Меня их использование не впечатлило. Вот пример: http://www.delphimaster.ru/cgi-bin/forum.pl?n=9&id=1210312243 это тема с delphimasters, где я выкладывал код функции векторного произведения векторов. См. посты 1, 5 и особенно 12. ЗЫ Ну уж не знаю, может у меня и впрямь руки кривые, однако SSE-вариант (на моей машине) работал медленнее, нежели способ с использованием обычного FPU. На других компах не тестировал. Добавлено: ИМХО, лучше просто оптимизировать алгосы вычислений. Можете выложить - всем тредом подумаем как это сделать. А если уж подключатся такие люди как kaspersky...
Возможно всё. Есть такая интересная штука AMaths.rar там все тригонометрические операции, которых нет в SIMD инструкциях, реализованы в них же с хорошей точностью результатов и скоростью, только по-моему для scalar & packed float но не для double, что можно сделать самому.
SSE как и MMX предназначены для одновременного вычисления одной операции над несколькими операндами. Прирост скорости при одном векторном произведении матриц не даст какого-либо заметного прироста (ну может процентов 20). А вот для поточных вычислений - самое оно. Модули для этого - Intel C++ Compiler с настройккми под кокретную версию SSE и вперед! Ну или ручками.
У intel есть библеотека для быстрых вычислений произведений матриц и векторов оптимизацие под ихнии процессоры. У AMD незнаю возможет тоже есть. А вообще на геймдеве вопрос обсуждался там найти можно такии либы. А вообще такии операции лучши переложить на саму видюшку. Благо таких видюшек, которые поддерживают векторные шейдоры полно.
ksacvet777 Библиотека называется IMSL, есть версия под многоядерные(наверняка) и для параллельных вычислений. Ну и кстати еще раз повторюсь, что в последних библиотеках Интел Фортран все элементарные функции, для которых есть опкод, Интел вычисляет через SSE - можно поучится у Интела, как надо оптимизировать.