Re[4]: как double считать со скоростью float
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.07.11 06:28
Оценка:
Здравствуйте, ZegSoft, Вы писали:

ZS>Попробовал скомпилить с этими ключами — никакого ускорения нет.

ZS>Насколько я понимаю, вся проблема в том, что алгоритм делает не тупое "перемалывание массивов данных", а элементы массивов взаимосвязаны. Результаты расчета в элементе j зависят от результатов расчета элемента i. Насколько я понял, SSE — это что-то наподобии конвейеров? В такой постановке они не могут дать эффекта.

Попробуй развернуть цикл. То есть делать инкремент индекса не на 1, а на 2. Тогда внутренность цикла у тебя немного изменится, компилятор может её более качественно раскидать по регистрам, лучше оптимизировать. Иногда такой приём помогает.
Re[7]: как double считать со скоростью float
От: ArtDenis Россия  
Дата: 10.07.11 08:00
Оценка:
Здравствуйте, ArtDenis, Вы писали:

ZS>>Изменениея практически такие же, как и при подготовке для CUDA??

AD>Я не разу не использовал CUDA, но думаю что да, типа того
Посмотрел что такое CUDA, оказывается это немного другое, чем я ожидал. Так что изменения будут совсем не те.
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[5]: как double считать со скоростью float
От: ZegSoft Россия  
Дата: 10.07.11 14:16
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, ZegSoft, Вы писали:


ZS>>Попробовал скомпилить с этими ключами — никакого ускорения нет.

ZS>>Насколько я понимаю, вся проблема в том, что алгоритм делает не тупое "перемалывание массивов данных", а элементы массивов взаимосвязаны. Результаты расчета в элементе j зависят от результатов расчета элемента i. Насколько я понял, SSE — это что-то наподобии конвейеров? В такой постановке они не могут дать эффекта.

N>Попробуй развернуть цикл. То есть делать инкремент индекса не на 1, а на 2. Тогда внутренность цикла у тебя немного изменится, компилятор может её более качественно раскидать по регистрам, лучше оптимизировать. Иногда такой приём помогает.


То есть теоретически разница между double и float должна быть значительно меньше 30%??
Re[6]: как double считать со скоростью float
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.07.11 15:25
Оценка:
Здравствуйте, ZegSoft, Вы писали:

ZS>То есть теоретически разница между double и float должна быть значительно меньше 30%??


Трудно сказать. Исторически, с разными процессорами эта разница постоянно меняется. А вообще, надо смотреть код и дизассемблер. И ещё: перейди на компилятор посовременнее (6-й студии много-много лет). Разницу точно заметишь.
Re[7]: как double считать со скоростью float
От: ZegSoft Россия  
Дата: 11.07.11 06:46
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, ZegSoft, Вы писали:


ZS>>То есть теоретически разница между double и float должна быть значительно меньше 30%??


N>Трудно сказать. Исторически, с разными процессорами эта разница постоянно меняется. А вообще, надо смотреть код и дизассемблер. И ещё: перейди на компилятор посовременнее (6-й студии много-много лет). Разницу точно заметишь.


Да я знаю, что 6-й компилятор уже сильно устарел. Просто мне проект достался "по-наследству" от предыдущих разработчиков, и перевести его на новую студию не так-то просто. В нем используются старые либы, которые в новой студии не компилятся. Поэтому переход на новую студию требует существенных затрат времени.
Re[8]: как double считать со скоростью float
От: minorlogic Украина  
Дата: 11.07.11 16:15
Оценка:
Здравствуйте, ZegSoft, Вы писали:

ZS>Здравствуйте, Nuzhny, Вы писали:


N>>Здравствуйте, ZegSoft, Вы писали:


ZS>>>То есть теоретически разница между double и float должна быть значительно меньше 30%??


N>>Трудно сказать. Исторически, с разными процессорами эта разница постоянно меняется. А вообще, надо смотреть код и дизассемблер. И ещё: перейди на компилятор посовременнее (6-й студии много-много лет). Разницу точно заметишь.


ZS>Да я знаю, что 6-й компилятор уже сильно устарел. Просто мне проект достался "по-наследству" от предыдущих разработчиков, и перевести его на новую студию не так-то просто. В нем используются старые либы, которые в новой студии не компилятся. Поэтому переход на новую студию требует существенных затрат времени.


Переведи в ddl только критический код , изолируй числодробилку. Переход на хороший компилятор может дать прирост до 2х -4х раз свободно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.