2012.06.0109:25:23 ParallelTester_00-01x_new_cycle (EURUSD,D1) ========================================
2012.06.0109:32:25 ParallelTester_00-01x_new_cycle (EURUSD,D1) CPU time = 421203 ms
2012.06.0109:32:25 ParallelTester_00-01x_new_cycle (EURUSD,D1) Соunt indicators = 16; Count history bars = 144000; Count pass = 128002012.06.0109:32:25 ParallelTester_00-01x_new_cycle (EURUSD,D1) Result on Cpu МахResult==1.2809 at 9448 pass
2012.06.0109:32:25 ParallelTester_00-01x_new_cycle (EURUSD,D1) -------------------------
2012.06.0109:32:28 ParallelTester_00-01x_new_cycle (EURUSD,D1) Device number = 02012.06.0109:32:39 ParallelTester_00-01x_new_cycle (EURUSD,D1) GPU time = 11263 ms
2012.06.0109:32:39 ParallelTester_00-01x_new_cycle (EURUSD,D1) CpuTime/GpuTime = 37.397052295125632012.06.0109:32:39 ParallelTester_00-01x_new_cycle (EURUSD,D1) Result on Gpu МахResult==1.2809 at 9448 pass
2012.06.0109:32:39 ParallelTester_00-01x_new_cycle (EURUSD,D1) ------------
2012.06.0109:32:39 ParallelTester_00-01x_new_cycle (EURUSD,D1) Device number = 12012.06.0109:32:40 ParallelTester_00-01x_new_cycle (EURUSD,D1) GPU time = 998 ms
2012.06.0109:32:40 ParallelTester_00-01x_new_cycle (EURUSD,D1) CpuTime/GpuTime = 422.04709418837682012.06.0109:32:40 ParallelTester_00-01x_new_cycle (EURUSD,D1) Result on Gpu МахResult==1.2809 at 9448 pass
2012.06.0109:32:40 ParallelTester_00-01x_new_cycle (EURUSD,D1) ------------
Я так понял: 1. чистый CPU, 2. CPU с OpenCL, 3. GPU с OpenCL ?
И все равно - 422.
Mathemat:
Я поражен: это же бюджетная карточка стоимостью до 80 долларов! Значит, NVidia очень серьезно потрудилась над драйвером.
А как я поражен, из грязи в князи. Создается впечатление, что NVidia'цы почитывают этот форум, делают подобные тесты, находят баги и правят их.
Вот если бы тестер стратегий сам выбирал на чем ему моделироваться, т.е. без принудительного написания кода, это было бы очень хорошо. Все же 1 секунда (или 11 секунд если видео не позволяет или отсутствует) против 7 минут - это сила.
Чтобы проводить тесты в пределах малой погрешности, есть хороший метод в виде запуска серии замеров с усреднением результатов или отбрасыванием экстремумом. Но, конечно же, лучше увеличивать объем вычислений, чтобы стабилизировать результат.
Современные операционки и реально многоядерные процессоры серьезно сняли проблему разброса замеров через GetTickCount. Мой исходный комментарий был исключительно об ошибочном заявлении "средняя погрешность GetTickCount не меньше десятков мс".
19. MetaTester: Добавлена поддержка использования OpenCL-программ в агентах тестирования.
Программы на OpenCL предназначены для выполнения вычислений на видеокартах с поддержкой стандарта OpenCL 1.1 или выше. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных. Язык OpenCL берёт на себя организацию таких параллельных вычислений и позволяет добиться огромного ускорения для некоторого класса задач.
После тестов будем включать OpenCL в распределенной сети.
fyords: Я так понял: 1. чистый CPU, 2. CPU с OpenCL, 3. GPU с OpenCL ?
Да, правильно.
А приложенный скрипт Вам не в лом прогнать и результаты выложить? Ну правда ведь интересно.
Не бойтесь большого количества цифр. Они просто для проверки корректности вычислений.
Скрипт так же проходит по всем девайсам. Основная задача - умножение двух больших матриц.
Настройки можно менять только внутри кода - линейный размер матриц _size в этой строке:
#define _size 2000
Меняйте, только если не хватит памяти. Признак этого - несоответствия в цифрах массивов при прогоне на дискретном GPU: если отличие чисел - больше 10^(-4), то это явная ошибка. Но у Вас вроде памяти должно хватить.
К примеру у меня видеокарта Radeon 6930, в ней 1280 потоковых процессоров. Как она будет отображаться в списке агентов?. Как 1 устройство, или все 1280.
Она одна в разы быстрее чем 10 процессоров, а бонус то канет не за 1 добавленное устройство.
Только я ничего не понял из этих цифр. Поясните? Ну хоть на пальцах: это хорошо или нет? Между устройствами они разные, а по строкам 5-6 знак после запятой уже отличается местами.
Кажется понял: это множественный тест на повторяющихся операциях, итоговое время есть среднее для каждого девайса. Так?
fyords: Только я ничего не понял из этих цифр. Поясните? Ну хоть на пальцах: это хорошо или нет? Между устройствами они разные, а по строкам 5-6 знак после запятой уже отличается местами.
Это просто проверочные цифры. Если они совпадают с точностью порядка 0.00001, то все нормально. Индексы выбираются случайно - выборочная проверка корректности вычислений. Ну не будем же мы тут печатать результаты полной проверки всех 4 миллионов элементов полученной матрицы?!
Кажется понял: это множественный тест на повторяющихся операциях, итоговое время есть среднее для каждого девайса. Так?
Нет, это единичная операция умножения двух больших матриц.
По цифрам быстродействия: очень хорошо для этой карты. Теперь мои результаты. Устройства (снизу вверх - порядок инициализации):
2012.06.0205:49:25 OpenCL CPU: GenuineIntel Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.2 (2 units, 2793 MHz, 8040 Mb, version2.0 (sse2))
2012.06.0205:49:25 OpenCL GPU: Advanced Micro Devices, Inc. ATI RV770 with OpenCL 1.0 (10 units, 780 MHz, 512 Mb, version CAL 1.4.1720)
2012.06.0205:49:25 OpenCL CPU: Intel(R) Corporation Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version1.1)
Т.е. вначале Intel CPU с движком OCL от Intel, потом мой динозавр HD 4870, а потом снова камень, но с движком от AMD. Скрипт:
Спасибо, я и не подозревал, что Вы отчет открываете.
Прирост стал еще больше.
Я поражен: это же бюджетная карточка стоимостью до 80 долларов! Значит, NVidia очень серьезно потрудилась над драйвером.
А вот новые результаты:
Я так понял: 1. чистый CPU, 2. CPU с OpenCL, 3. GPU с OpenCL ?
И все равно - 422.
Я поражен: это же бюджетная карточка стоимостью до 80 долларов! Значит, NVidia очень серьезно потрудилась над драйвером.
А как я поражен, из грязи в князи. Создается впечатление, что NVidia'цы почитывают этот форум, делают подобные тесты, находят баги и правят их.
Вот если бы тестер стратегий сам выбирал на чем ему моделироваться, т.е. без принудительного написания кода, это было бы очень хорошо. Все же 1 секунда (или 11 секунд если видео не позволяет или отсутствует) против 7 минут - это сила.
Современные операционки и реально многоядерные процессоры серьезно сняли проблему разброса замеров через GetTickCount. Мой исходный комментарий был исключительно об ошибочном заявлении "средняя погрешность GetTickCount не меньше десятков мс".
в реестре это выглядит примерно так:
"nvcuda.dll"=dword:00000000
"amdocl.dll"=dword:00000000
"amdocl64.dll"=dword:00000000
"IntelOpenCL64.dll"=dword:00000000
Они работают примерно в 1,5 раза медленнее (выделено красным), чем родной драйвер от Intel (выделено зелёным).
Можно удалить соответствующие значения реестра, но перед этой операцией сохраните ветку на всякий случай.
Уважаемый админ. Давно не был на вашем форуме, возможно упустил этот момент.
Будет ли реализована сдача видеокарт под нужды облака?
Уважаемый админ. Давно не был на вашем форуме, возможно упустил этот момент.
Будет ли реализована сдача видеокарт под нужды облака?
Уже почти готово https://www.mql5.com/ru/forum/23/page15#comment_201948
Программы на OpenCL предназначены для выполнения вычислений на видеокартах с поддержкой стандарта OpenCL 1.1 или выше. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных. Язык OpenCL берёт на себя организацию таких параллельных вычислений и позволяет добиться огромного ускорения для некоторого класса задач.
Да, правильно.
А приложенный скрипт Вам не в лом прогнать и результаты выложить? Ну правда ведь интересно.
Не бойтесь большого количества цифр. Они просто для проверки корректности вычислений.
Скрипт так же проходит по всем девайсам. Основная задача - умножение двух больших матриц.
Настройки можно менять только внутри кода - линейный размер матриц _size в этой строке:
#define _size 2000Меняйте, только если не хватит памяти. Признак этого - несоответствия в цифрах массивов при прогоне на дискретном GPU: если отличие чисел - больше 10^(-4), то это явная ошибка. Но у Вас вроде памяти должно хватить.
К примеру у меня видеокарта Radeon 6930, в ней 1280 потоковых процессоров. Как она будет отображаться в списке агентов?. Как 1 устройство, или все 1280.
Она одна в разы быстрее чем 10 процессоров, а бонус то канет не за 1 добавленное устройство.
А приложенный скрипт Вам не в лом прогнать и результаты выложить? Ну правда ведь интересно.
Нет, не в лом. Самому интересно. В настройках ничего не менял.
Только я ничего не понял из этих цифр. Поясните? Ну хоть на пальцах: это хорошо или нет? Между устройствами они разные, а по строкам 5-6 знак после запятой уже отличается местами.
Кажется понял: это множественный тест на повторяющихся операциях, итоговое время есть среднее для каждого девайса. Так?
Это просто проверочные цифры. Если они совпадают с точностью порядка 0.00001, то все нормально. Индексы выбираются случайно - выборочная проверка корректности вычислений. Ну не будем же мы тут печатать результаты полной проверки всех 4 миллионов элементов полученной матрицы?!
Кажется понял: это множественный тест на повторяющихся операциях, итоговое время есть среднее для каждого девайса. Так?
Нет, это единичная операция умножения двух больших матриц.
По цифрам быстродействия: очень хорошо для этой карты. Теперь мои результаты. Устройства (снизу вверх - порядок инициализации):
Т.е. вначале Intel CPU с движком OCL от Intel, потом мой динозавр HD 4870, а потом снова камень, но с движком от AMD. Скрипт: