Многопоточность в МТ5 - страница 5

 
Renat:

Причем после перевода всех float в double, получилось ожидаемое ускорение - время расчета 5491 ms вместо 7863 ms на float.

Код приложен.

А почему у вас float работает медленнее чем double ?

Работа с double как то особенно оптимизирована ?

ЗЫ По логике float 4-х байтовый, значит и операций с ним должно быть меньше чем с 8-ми байтовым double.

 
Urain:

А почему у вас float работает медленнее чем double ?

Работа с double как то особенно оптимизирована ?

ЗЫ По логике float 4-х байтовый, значит и операций с ним должно быть меньше чем с 8-ми байтовым double.

Это уже вопрос к набору команд CPU.

На самом деле при использовании float приходится перед математическими операциями конвертировать его в double, а потом обратно. Фактически float используют для компактного/экономии представления вещественных чисел, а вот в математических расчетах его ни в коем случае нельзя использовать из-за огромных погрешностей.

Поэтому лучше всего сразу вести расчеты и хранить результаты в double.

 

Информация в логах. запись файлов по желанию: {mt5}\mql5\files\PlatformName_DeviceName.bmp

2011.06.06 21:33:05 Mandelbrot_double (EURUSD,M1) Time: 41094 ms

2011.06.06 21:14:49 OCL_MFractal_double (EURUSD,M1) AMD Accelerated Parallel Processing: Intel(R) Core(TM)2 CPU          4400  @ 2.00GHz:  CalcTime=3188

2011.06.06 21:14:45 OCL_MFractal_double (EURUSD,M1) NVIDIA CUDA: GeForce GT 430:  CalcTime=672

Файлы:
 

Тест Рената:

10591 ms

Тоже самое, но с OpenCL:

3370 ms


AMD Accelerated Parallel Processing: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+


 

Munshi A., Gaster B., Mattson T., Fung J. - OpenCL. Programming Guide [2011, PDF, ENG] + исходные коды

https://www.mql5.com/ru/forum/132431 

Есть книга на русском по CUDA - "Основы работы с технологией CUDA" (и другие ... ссылки). У кого есть опыт программирования ? - MQL4 форум
  • www.mql5.com
Есть книга на русском по CUDA - "Основы работы с технологией CUDA" (и другие ... ссылки). У кого есть опыт программирования ? - MQL4 форум