Форум: "Потрепаться";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизОптимизация вычислений Найти похожие ветки
← →
Vaitek © (2005-02-17 13:08) [0]Ну, с точностью я разобрался (спасибо этому форуму), теперь пришла пора ускорять вичисления.
У меня идет расчет достаточно длинный цикличный расчет, с большим количеством сложений, вычитаний, умножений, делений и возведений в квадрат.
Вопрос:
Какие математические операции предпочтительнее по скорости выполения?
Например:
Что лучше - 2*(х-у) или х+х-у-у?
Что работает быстрее х*х или sqr(x)?
Тип всех переменных Extended.
В общем любая полезная инфа сгодится.
← →
Инструктор (2005-02-17 13:12) [1]слабое звено может быть в самом алгоритме.
← →
Sergey13 © (2005-02-17 13:16) [2]О какой сфере применения речь?
ИМХО, самое простое - сравнить. Написать два варианта и сравнить.
← →
Ega23 © (2005-02-17 13:17) [3]По-идее, X*X вычисляется быстрее, чем SQR(X)
← →
Alx2 © (2005-02-17 13:17) [4]Все от конкретного случая зависит.
← →
Юрий Зотов © (2005-02-17 13:19) [5]> Vaitek © (17.02.05 13:08)
> Что лучше...
Обычно это копейки по сравнению с тем, чего можно добиться оптимизацией самого алгоритма.
← →
Vaitek © (2005-02-17 13:28) [6]Короче алгоритм сводится к решению системы нелинейных уравнений (11 штук). От системы никуда не дется.
Решаю методом Возмущений. Это один из способов линеаризации, когда нелинейная система заменяется серией линенйных.
В принцепе для достаточной точности, в большенстве случаев, хватает всего 3-4 цикла решений линейных уравнений, если я начальные точки приблежения хорошо подберу. На Р4-2800НТ это рашается за 1-2мс (замерял на основе QueryPerformanceCounter).
Но прога должна будет работать на первом пне 233, посему надо выжать все что можно.
Ну так какие идеи?
← →
Alx2 © (2005-02-17 13:36) [7]>Vaitek © (17.02.05 13:28) [6]
Asm + оптимизация загрузки конвейеров
← →
Alx2 © (2005-02-17 13:37) [8]Vaitek © (17.02.05 13:28) [6]
В помощники рекомендую VTune (c) Intel
← →
Игорь Шевченко © (2005-02-17 13:43) [9]
> Ну так какие идеи?
Ну так какая оплата ?
← →
begin...end © (2005-02-17 13:43) [10]> Vaitek © (17.02.05 13:08)
> Что лучше - 2*(х-у) или х+х-у-у?
Лучше 2*(х-у).
> Что работает быстрее х*х или sqr(x)?
Быстрее работает sqr(x).
← →
Vaitek © (2005-02-17 13:50) [11]
> Игорь Шевченко © (17.02.05 13:43) [9]
>
> Ну так какая оплата ?
Ну блин, за советы еще и оплата. Спасибо скажу - вот моя цена.
> begin...end © (17.02.05 13:43) [10]
Обидно, у меня все именно так.
← →
Игорь Шевченко © (2005-02-17 14:17) [12]Vaitek © (17.02.05 13:50) [11]
За спасибо будет при коммунизме. Яндекс в зубы и мучайся.
← →
Vaitek © (2005-02-17 14:34) [13]> За спасибо будет при коммунизме. Яндекс в зубы и мучайся.
Чую, пора Вам отдохнуть от этого форума и от работы в частности. А то синдром перенасыщения чужими проблемами даже сквозь инет пролезает 8-)
← →
kaif © (2005-02-17 14:42) [14]Игорь Шевченко © (17.02.05 14:17) [12]
Vaitek © (17.02.05 13:50) [11]
За спасибо будет при коммунизме. Яндекс в зубы и мучайся.
Игорь, а утебя аллергия к коммунизму?
Просто интересно...(с)
← →
TUser © (2005-02-17 15:37) [15]
> На Р4-2800НТ это рашается за 1-2мс (замерял на основе QueryPerformanceCounter).
>
> Но прога должна будет работать на первом пне 233, посему
> надо выжать все что можно
Ну, будет 50мс - все равно не заметишь.
← →
Jeer © (2005-02-17 16:55) [16]Вынести математику в DLL, скомпилированную Intel C comp.
← →
Игорь Шевченко © (2005-02-17 17:08) [17]kaif © (17.02.05 14:42) [14]
У меня аллергия к халявщикам :)
← →
Vaitek © (2005-02-17 19:47) [18]Каким нафиг халявщикам? Я же не заваливаю тебя километрами кода чтоб ты мне его соптимизировал. Я спросил СОВЕТА.
"Яндекс в зубы и мучайся" - это не совет. Это левая отмазка - лучше тогда молчать и сидеть в сторонке а не выпендриваться.
Если ты так крут, что тебе нечего сказать - молчи.
Всем остальным хорошим людям - спасибо.
← →
Игорь Шевченко © (2005-02-18 10:46) [19]
> Если ты так крут, что тебе нечего сказать - молчи
Не говори, что мне делать и я не буду говорить, куда тебе идти (с)
← →
Digitman © (2005-02-18 11:51) [20]
> Vaitek © (17.02.05 19:47) [18]
> Каким нафиг халявщикам
а ты - не "халявщик" ?!
ты не сподобился даже на сайт Интела сходить, дабы приобрести там свободно распространяемый док-т по оптимизации кода на базе IA-32 .. зато трандычишь тут, мол, дайте советы ...
← →
TUser © (2005-02-18 13:03) [21]И все-таки я не понимаю - в чем критичность этой операции? Она должна быстро выполняться и безо всякой оптимизации.
← →
Jeer © (2005-02-18 15:07) [22]TUser © (18.02.05 13:03) [21]
Это не так.
Например, оптимизирующий компилятор может выполнить деление (довольно длительная процедура, по ср. с умножением, на Intel CPU - 1/10) не через использование опкода процессора, а по формуле
A/B == (2^n)/b * A/(2^m)
n-разрядность сетки
m-разрядность числа
Ориентировочно, сокращение числа тактов в 3 раза, по сравнению с делением.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.033 c