Отговори на тема  [ 21 мнения ]  Отиди на страница Предишна  1, 2
Полезни алгоритми 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Фев 16, 2014 3:36 pm
Мнения: 953
Мнение Re: Полезни алгоритми
Като направя теста - ще напиша какви са резултатите


Нед Юни 28, 2015 1:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: Полезни алгоритми
Като правиш теста можеш да свериш и точността - Newton-Raphson май не беше много точен?
Иначе това P8600 сигурно си има SIMD инструкция за sqrt на double.


Нед Юни 28, 2015 9:05 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Фев 16, 2014 3:36 pm
Мнения: 953
Мнение Re: Полезни алгоритми
Интересни неща се оказаха с кода за PC - при включени всички оптимизации компилатора на Microsoft разгъва циклите (до колкото е възможно) и не изпълнява изчисления резултата от които не се ползва. Заради тези оптимизации получавах нереално високи скорости. След като успях да "излъжа" компилатора да ми изпълнява всичко както искам - се достигна до по-реалистични резултати:

fastSqrt - 36 милиона изпълнения в секунда
sqrt_u32 - 65 милиона изпълнения в секунда

Метода на колегата palavrov е около 2 пъти по-бърз.


Нед Юни 28, 2015 11:04 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Полезни алгоритми
Само да допълня, че съм го оптимизирал за нормален ARM32 инструкшън сет с условно изпълнение на всички инструкции + ръчен loop unrolling т.е. никъде няма условни преходи и самия алгоритъм е написан така, че компилатора да се възползва от аритметични инструкции със шифтване на единия операнд. За този cortex m3 на който го пробваш не е ясно как ще се оптимизира с Thumb2 инструкциите ... ако не е проблем постни дизасемблиран код с objdump, че ми стана любопитно а не ми се подкарва туулчейн в момента и за него.

Едит: Това, че компилатора е оптимизирал добре трябва да те радва а не да се чудиш как му спреш оптимизациите - не мен ми се наложи да правя всичко ръчно с много итерации писане, компилиране, дизасемблиране, корекция, компилиране, дизасемблиране, корекция ... докато ми хареса.

_________________
Мразя да мразя ...


Нед Юни 28, 2015 11:40 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Полезни алгоритми
gicho написа:
Иначе това P8600 сигурно си има SIMD инструкция за sqrt на double.

Когато смяташ производителност трябва много да внимаваш, как точно бенчиш, защото технологиите се променят всяка година.
Например в https://en.wikipedia.org/wiki/AVX-512 можеш да сложиш 16 броя 32 биточи числа - но това не е най-бързото на процеосорите.
Сега всяко следващо поколение процесори е с 5% по-бързо от предходното, обаче видеокартата им е с пъти по-бърза и подържат разни нови технологии, като OpenCL 2.0 което допринася доста за производителността.
Ето едно резюме: http://www.sisoftware.co.uk/?d=qa&f=apu_brw_gpu3

_________________
Warriors of the Night, ASSEMBLER!!!


Пон Юни 29, 2015 1:44 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Фев 13, 2013 3:35 pm
Мнения: 1803
Мнение Re: Полезни алгоритми
OpenCl е ефективен когато имаш огромен брой данни с еднакви сметки, каквито са графиките и някои други, предимно матрични сметки. При поточно смятане на малки порции вграденият копроцесор е по-бърз в общият случай- поне така показаха на тестовете.


Вто Юни 30, 2015 1:46 am
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни