Посоветуйте решения для ускорения float-вычислений

Тема в разделе "WASM.A&O", создана пользователем ksacvet777, 17 май 2008.

  1. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    Здравствуйте.
    Задача стоит такая: необходимо ускорить вычисления с вещественными числами . А так же с векторами и матрицами. Применительно к 3д-графике через OpenGL.

    Есть ли библиотеки , которые ускорили бы эти вычисления , используя новые возможности сопроцессора ?
    ээ... то есть конечно они есть :)
    Но кто пользовался? У кого есть какая-либо информация по этому вопросу ?
    , а так же опыт работы с этими решениями . Оставьте пару строчек.

    С нетерпением жду совета
    Заранее большое спасибо.

    p.s. О существовании гугла знаю.
     
  2. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Вы про MMX и SSE? Не знаю даже что сказать. Меня их использование не впечатлило. Вот пример:
    http://www.delphimaster.ru/cgi-bin/forum.pl?n=9&id=1210312243
    это тема с delphimasters, где я выкладывал код функции векторного произведения векторов. См. посты 1, 5 и особенно 12.
    ЗЫ Ну уж не знаю, может у меня и впрямь руки кривые, однако SSE-вариант (на моей машине) работал медленнее, нежели способ с использованием обычного FPU. На других компах не тестировал.

    Добавлено: ИМХО, лучше просто оптимизировать алгосы вычислений. Можете выложить - всем тредом подумаем как это сделать. А если уж подключатся такие люди как kaspersky...
     
  3. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Возможно всё.
    Есть такая интересная штука AMaths.rar там все тригонометрические операции, которых нет в SIMD инструкциях, реализованы в них же с хорошей точностью результатов и скоростью, только по-моему для scalar & packed float но не для double, что можно сделать самому.
     
  4. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    SSE как и MMX предназначены для одновременного вычисления одной операции над несколькими операндами. Прирост скорости при одном векторном произведении матриц не даст какого-либо заметного прироста (ну может процентов 20). А вот для поточных вычислений - самое оно.

    Модули для этого - Intel C++ Compiler с настройккми под кокретную версию SSE и вперед! Ну или ручками.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    У intel есть библеотека для быстрых вычислений произведений матриц и векторов оптимизацие под ихнии процессоры. У AMD незнаю возможет тоже есть. А вообще на геймдеве вопрос обсуждался там найти можно такии либы. А вообще такии операции лучши переложить на саму видюшку. Благо таких видюшек, которые поддерживают векторные шейдоры полно.
     
  6. ksacvet777

    ksacvet777 Александр

    Публикаций:
    0
    Регистрация:
    9 ноя 2006
    Сообщения:
    180
    Адрес:
    Кемеровская обл.
    Ок. Всем большое спасибо .
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    ksacvet777
    Библиотека называется IMSL, есть версия под многоядерные(наверняка) и для параллельных вычислений.
    Ну и кстати еще раз повторюсь, что в последних библиотеках Интел Фортран все элементарные функции, для которых есть опкод, Интел вычисляет через SSE - можно поучится у Интела, как надо оптимизировать.