Ну наконец-то, заждались уже Вас. Если готовы поэкспериментировать - поставьте у себя Intel OpenCL Runtime (инструкции по ссылке).
Запустите скрипт, ничего не меняя в нем, и выложите лог из закладки "Эксперты" так же, как это делали предыдущие коллеги. Полное время выполнения скрипта - примерно 3 минуты на Вашем камне, потерпите. Заодно узнаем, как OpenCL работает на самом крутом голом камне Sandy Bridge.
Если Вашего терпения не хватит или Вам кажется, что это выше Ваших способностей, - ничего страшного, не обидимся.
P.S. Цель этого скрипта - посмотреть, на что способен голый CPU без всяких дискретных видеодраконов. Подозреваю, что при правильно вставшем Intel Runtime и на этом скрипте будет ускорение в районе 200 или даже чуть повыше.
Есть сомнения, что Intel OpenCL Runtime встал корректно.
2012.04.23 00:12:56ParallelTester_00-01x__3 (EURUSD,H1)GPU time = 219 ms
Вы, вероятно, выставили аргументом CLContextCreate() не нуль, а что-то другое. Ну просил же Вас ничего не менять! Возможности Вашего двухголового видеодракона нам уже известны. Но у Вас их, похоже, даже несколько...
По моим грубым оценкам, при CLContextCreate(0) у Вас должны быть цифры соответственно порядка CPU time = 180000 ms и GPU time = 900 ms (примерно). У Вас странно большое первое время исполнения - для такого CPU. Может, он был сильно загружен другими задачами?
Вы можете просто прогнать скрипт в том же виде, в каком я его прикрепил, - ничего не меняя в коде, ни единого символа?
P.S. Конечно, возможно, device = 0 у Вас соответствует не CPU, а чему-то еще. Ну тогда поэкспериментируйте (от 0 до 3). Самое большое время GPU time по идее должно соответствовать голому CPU, т.е. хосту.
Вы выставили аргументом CLContextCreate() не нуль, а что-то другое. Ну просил же Вас ничего не менять! Возможности Вашего двухголового видеодракона нам уже известны. Но у Вас их, похоже, несколько...
По моим грубым оценкам, при CLContextCreate(0) у Вас должны быть цифры соответственно порядка CPU time = 180000 ms и GPU time = 900 ms (примерно). У Вас странно большое первое время исполнения - для такого CPU. Может, он был сильно загружен другими задачами?
Вы можете просто прогнать скрипт в том же виде, в каком я его прикрепил, - ничего не меняя, ни единого символа?
P.S. Конечно, возможно, device = 0 у Вас соответствует не CPU, а чему-то еще. Ну тогда поэкспериментируйте (от 0 до 3). Самое большое время GPU time по идее должно соответствовать голому CPU, т.е. хосту.
Параметры не менял! Запустил как есть.
По видео да так и есть 2x590.
Запустил еще раз при CLContextCreate(0)1,2,3 результат тот же, что был раньше.
Запустил еще раз при CLContextCreate(0)1,2,3 результат тот же, что был раньше.
Все результаты одинаковые? Не верю... ну не может в этом скрипте на голом CPU быть GPU time = 219 ms. В самом лучшем случае будет порядка 800 ms, но никак не 200.
Вот мой типичный результат (у меня CPU Pentium G840):
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 88.40817091454272 2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==1.05116 at 7785 pass 2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CPU time = 235873 ms 2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==1.05116 at 7785 pass 2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) GPU time = 2668 ms 2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK! 2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) CLGetInfoInteger() returned 1
Все результаты одинаковые? Не верю... ну не может в этом скрипте на голом CPU быть GPU time = 219 ms. В самом лучшем случае будет порядка 800 ms, но никак не 200.
casinonsk: Вот только что еще раз попробовал с CLContextCreate(0)
Это явно на дискретной карте, а не на CPU: такие ускорения на эмуляции вряд ли возможны. И число дивайсов у Вас уже 5, жуть какая.
Если Вам не в лом - прогоните, пожалуйста, чуть измененный код, и выложите результат сюда. В коде вычисления для разных дивайсов OpenCL сведены в цикл (они должны быть быстрыми), а вычисление на x86, самое долгое, выполняется только один раз. Портянка будет длинной, но сам скрипт выполняется однократно.
Я понимаю, что я Вас уже замучил. Но в любом случае это будет хорошая инфа для Support Team.
очень вероятно, первая цифра, 11357 ms, относится к хосту (голому CPU), а вторая, 998 ms, - к видяхе. Порядок выигрыша на хосте, если грубо, вполне соответствует ускорению, достигаемому на AMD OpenCL (примерно 38 раз на 4-ядреном Атлоне II). Хотя и маловато на самом деле, должно быть побольше, где-то близко к 50-60. Вполне возможно, у Вас сильно медленная память.
Цифра CpuTime/GpuTime, конечно, вычисляется только для последнего обсчитанного дивайса.
С Вашим железом почти все понятно, у Вас только хост является дивайсом OpenCL. С другой стороны, странно, откуда взялся такой высокий результат раньше (стр. 51):
2012.04.0813:28:01 ParallelTester_00-02-s16x7x3k (EURUSD,H1) OpenCL init OK!
2012.04.0813:28:08 ParallelTester_00-02-s16x7x3k (EURUSD,H1) GPU time = 7145 ms
2012.04.0813:28:08 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Соunt inticators = 16; Count history bars = 50000; Count pass = 40962012.04.0813:28:08 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Result on Gpu МахResult==3.86669 at 1682 pass
2012.04.0813:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) CPU time = 422888 ms
2012.04.0813:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Соunt inticators = 16; Count history bars = 50000; Count pass = 40962012.04.0813:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Result on Cpu МахResult==3.86669 at 1682 pass
2012.04.0813:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) CpuTime/GpuTime = 59.18656403079076
У меня почему то невозможно вытащить курсор из вставки кода. И если кого то цитирую, такая же ерунда. Это баг форума?
Скорее баг движка форума, но не всегда так. Я обычно жму на батон HTML и вставляю вручную пару букв после последнего тэга. А потом возвращаюсь в визуальный режим редактирования поста.
Ну наконец-то, заждались уже Вас. Если готовы поэкспериментировать - поставьте у себя Intel OpenCL Runtime (инструкции по ссылке).
Запустите скрипт, ничего не меняя в нем, и выложите лог из закладки "Эксперты" так же, как это делали предыдущие коллеги. Полное время выполнения скрипта - примерно 3 минуты на Вашем камне, потерпите. Заодно узнаем, как OpenCL работает на самом крутом голом камне Sandy Bridge.
Если Вашего терпения не хватит или Вам кажется, что это выше Ваших способностей, - ничего страшного, не обидимся.
P.S. Цель этого скрипта - посмотреть, на что способен голый CPU без всяких дискретных видеодраконов. Подозреваю, что при правильно вставшем Intel Runtime и на этом скрипте будет ускорение в районе 200 или даже чуть повыше.
Есть сомнения, что Intel OpenCL Runtime встал корректно.
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1347.164383561644
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==0.9316 at 10253 pass
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 295029 ms
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 4
Есть сомнения, что Intel OpenCL Runtime встал корректно.
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms
Вы, вероятно, выставили аргументом CLContextCreate() не нуль, а что-то другое. Ну просил же Вас ничего не менять! Возможности Вашего двухголового видеодракона нам уже известны. Но у Вас их, похоже, даже несколько...
По моим грубым оценкам, при CLContextCreate(0) у Вас должны быть цифры соответственно порядка CPU time = 180000 ms и GPU time = 900 ms (примерно). У Вас странно большое первое время исполнения - для такого CPU. Может, он был сильно загружен другими задачами?
Вы можете просто прогнать скрипт в том же виде, в каком я его прикрепил, - ничего не меняя в коде, ни единого символа?
P.S. Конечно, возможно, device = 0 у Вас соответствует не CPU, а чему-то еще. Ну тогда поэкспериментируйте (от 0 до 3). Самое большое время GPU time по идее должно соответствовать голому CPU, т.е. хосту.
Вы выставили аргументом CLContextCreate() не нуль, а что-то другое. Ну просил же Вас ничего не менять! Возможности Вашего двухголового видеодракона нам уже известны. Но у Вас их, похоже, несколько...
По моим грубым оценкам, при CLContextCreate(0) у Вас должны быть цифры соответственно порядка CPU time = 180000 ms и GPU time = 900 ms (примерно). У Вас странно большое первое время исполнения - для такого CPU. Может, он был сильно загружен другими задачами?
Вы можете просто прогнать скрипт в том же виде, в каком я его прикрепил, - ничего не меняя, ни единого символа?
P.S. Конечно, возможно, device = 0 у Вас соответствует не CPU, а чему-то еще. Ну тогда поэкспериментируйте (от 0 до 3). Самое большое время GPU time по идее должно соответствовать голому CPU, т.е. хосту.
Параметры не менял! Запустил как есть.
По видео да так и есть 2x590.
Запустил еще раз при CLContextCreate(0)1,2,3 результат тот же, что был раньше.
Возможно проблема с Intel OpenCL Runtime.
Параметры не менял! Запустил как есть.
Запустил еще раз при CLContextCreate(0)1,2,3 результат тот же, что был раньше.Все результаты одинаковые? Не верю... ну не может в этом скрипте на голом CPU быть GPU time = 219 ms. В самом лучшем случае будет порядка 800 ms, но никак не 200.
Вот мой типичный результат (у меня CPU Pentium G840):
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 88.40817091454272
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==1.05116 at 7785 pass
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CPU time = 235873 ms
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==1.05116 at 7785 pass
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) GPU time = 2668 ms
2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK!
2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) CLGetInfoInteger() returned 1
ОК, проехали.
Все результаты одинаковые? Не верю... ну не может в этом скрипте на голом CPU быть GPU time = 219 ms. В самом лучшем случае будет порядка 800 ms, но никак не 200.
ОК, проехали.
Вот только что еще раз попробовал с CLContextCreate(0)
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1265.405982905983
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==1.48772 at 2051 pass
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 296105 ms
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==1.48772 at 2051 pass
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 234 ms
2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!
2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 5
Это явно на дискретной карте, а не на CPU: такие ускорения на эмуляции вряд ли возможны. И число дивайсов у Вас уже 5, жуть какая.
Если Вам не в лом - прогоните, пожалуйста, чуть измененный код, и выложите результат сюда. В коде вычисления для разных дивайсов OpenCL сведены в цикл (они должны быть быстрыми), а вычисление на x86, самое долгое, выполняется только один раз. Портянка будет длинной, но сам скрипт выполняется однократно.
Я понимаю, что я Вас уже замучил. Но в любом случае это будет хорошая инфа для Support Team.У меня интересный результат )) понял, это не обшее количество устройств а текущее
хотя расчеты еще идут, как закончит выложу.
Кстати в справке нет ни CLGetInfoInteger() ни CL_DEVICE_COUNT.
PS. результат
PS. результат
1. Обновите справку, Ваша явно устарела.
2. У Вас
очень вероятно, первая цифра, 11357 ms, относится к хосту (голому CPU), а вторая, 998 ms, - к видяхе. Порядок выигрыша на хосте, если грубо, вполне соответствует ускорению, достигаемому на AMD OpenCL (примерно 38 раз на 4-ядреном Атлоне II). Хотя и маловато на самом деле, должно быть побольше, где-то близко к 50-60. Вполне возможно, у Вас сильно медленная память.
Цифра CpuTime/GpuTime, конечно, вычисляется только для последнего обсчитанного дивайса.
1. Обновите справку, Ваша явно устарела.
2. Цифра CpuTime/GpuTime, конечно, вычисляется только для последнего обсчитанного дивайса.
1. Обновил вручную все есть, спасибо, а что справка не обновляется вместе с терминалом и метаедитором?
2. Да, но все равно, приятно ).
С Вашим железом почти все понятно, у Вас только хост является дивайсом OpenCL. С другой стороны, странно, откуда взялся такой высокий результат раньше (стр. 51):
У меня почему то невозможно вытащить курсор из вставки кода. И если кого то цитирую, такая же ерунда. Это баг форума?
Скорее баг движка форума, но не всегда так. Я обычно жму на батон HTML и вставляю вручную пару букв после последнего тэга. А потом возвращаюсь в визуальный режим редактирования поста.