OpenCL - страница 3

 
Andrey Dik:
Алексей, у тебя наблюдается стойкая мнемоническая связь: OCL<-> GPU. Разорви эту связь, она ложная. OCL никак не связан по своей природе с видяхами, это универсальная прослойка между программой и многоядерным устройством. Таким устройством может быть всё что угодно, от процессора, до специализированной расчетной фермы собранной из множества отдельных GPU, главное что бы эти устройства могли работать с OCL а для этого нужен драйвер. В большинстве случаев драйвер OCL идёт в комплекте со штатным драйвером ко всем видеокартам, но для процессоров это не так - нужно скачать с сайта CPU специальный драйвер для OCL. Не имеет значения, реальное это железо или виртуальное (VPS), драйвер нужно установить, вероятность 99,99999% что драйвер для OCL на VPS не установлен, если это конечно не специализированный VPS для подобных многопоточных расчетов.

Андрей, количество связей в мозгу превысило определенный предел, все мнемонические связи разрушены. Пишу программы на остатках 0.0001% от бывшего интеллекта.

На остатках сознания даю совет - будь внимательнее. Ты просто пропускаешь слова и фразы. 

2 ночи мск, лень искать по своим постам, но я писал, что для VPS, возможно, потребуются дрова от Интел

---------- И читаем копию от Дика ------------

но для процессоров это не так - нужно скачать с сайта CPU специальный драйвер для OCL.

--------------

да, повторять выгодно... 

 
Andrey Dik:
Алексей, у тебя наблюдается стойкая мнемоническая связь: OCL<-> GPU. Разорви эту связь, она ложная. OCL никак не связан по своей природе с видяхами, это универсальная прослойка между программой и многоядерным устройством. Таким устройством может быть всё что угодно, от процессора, до специализированной расчетной фермы собранной из множества отдельных GPU, главное что бы эти устройства могли работать с OCL а для этого нужен драйвер. В большинстве случаев драйвер OCL идёт в комплекте со штатным драйвером ко всем видеокартам, но для процессоров это не так - нужно скачать с сайта CPU специальный драйвер для OCL. Не имеет значения, реальное это железо или виртуальное (VPS), драйвер нужно установить, вероятность 99,99999% что драйвер для OCL на VPS не установлен, если это конечно не специализированный VPS для подобных многопоточных расчетов.

На самом деле OCL придуман/предназначен для "видяхами". То, что работает и на другие устойства, не меняет етот факт. Потом уже пришло и специализированное железо, там другое дело.

CPU в другой режим лучше ползватзя... ИМХО...

 
Alexey Volchanskiy:

Андрей, количество связей в мозгу превысило определенный предел, все мнемонические связи разрушены. Пишу программы на остатках 0.0001% от бывшего интеллекта.

На остатках сознания даю совет - будь внимательнее. Ты просто пропускаешь слова и фразы. 

2 ночи мск, лень искать по своим постам, но я писал, что для VPS, возможно, потребуются дрова от Интел

---------- И читаем копию от Дика ------------

но для процессоров это не так - нужно скачать с сайта CPU специальный драйвер для OCL.

--------------

да, повторять выгодно... 

Моя фамилия не склоняется. Это раз.

У тебя в посту слишком много встречается "не пробовал", "наверное" и тому подобные гизмы. Для начала попробуй, а потом спорь. Это два.
Alexey Volchanskiy:

По выделенному:

1. Установить дрова на VPS для OCL я еще  не пробовал. Андрей,  а какие дрова предлагаешь установить? Во первых, среди "обычных" VPS есть и с видяхами, наверное, тут уже все должно быть установлено. Есть дрова OCL от Intel, но тут у меня туман, вроде как они для APU + поддержка многоядерников. Серверы почти все на Xeon, не очень ясно, как все встанет...

2. Тоже такого не припомню. Но Ринат точно говорил об урезанном варианте терминала.

 
Alexey Volchanskiy:

Андрей, ...

Моё первое знакомство с OCL состоялось ещё в далёком 2010-м году, когда не без помощи толчка в виде заявки #29755 в СД началось внедрение параллельных вычислений в MT5. Заявка называлась MT5+CUDA, но руководство MQ дальновидно выбрало внедрение именно OCL а не CUDA, именно из за отсутствия привязки к какому то типу железа, открытому исходному коду и в силу большей перспективности, за что MQ отдельное за это спасибо.
 

Помогите, пожалуйста, разобраться в возможностях OCL.

Допустим, у меня есть код, в котором два цикла идут друг за другом, смогу я с помощью OCL сразу рассчитывать в двух циклах, если:

1. Переменные, полученные по результатам вычислений в циклах не связаны;

2. Переменные, полученные по результатам вычислений в циклах связаны между собой, к примеру  в первом цикле заполняем массив цифрами, а во втором цикле складываем два ближайших значения в массиве (это чисто для примера);

Надо ли в коде как то сообщать, что программа может продолжать работу до тех пор, пока не понадобятся значения из циклов? К примеру в начале кода запустили циклы на вычисления, а параллельно  считываем данные из файла - что б не ждать окончания цикла. Или при компиляции это всё как то само проверяется и учитывается?

Или я всё напутал, и можно только разбить одну операцию - допустим умножение одного массива на значение другого массива ( A[i]*B[i])?

 
Aleksey Vyazmikin:

Помогите, пожалуйста, разобраться в возможностях OCL.

Допустим, у меня есть код, в котором два цикла идут друг за другом, смогу я с помощью OCL сразу рассчитывать в двух циклах, если:

1. Переменные, полученные по результатам вычислений в циклах не связаны;

2. Переменные, полученные по результатам вычислений в циклах связаны между собой, к примеру  в первом цикле заполняем массив цифрами, а во втором цикле складываем два ближайших значения в массиве (это чисто для примера);

Надо ли в коде как то сообщать, что программа может продолжать работу до тех пор, пока не понадобятся значения из циклов? К примеру в начале кода запустили циклы на вычисления, а параллельно  считываем данные из файла - что б не ждать окончания цикла. Или при компиляции это всё как то само проверяется и учитывается?

Или я всё напутал, и можно только разбить одну операцию - допустим умножение одного массива на значение другого массива ( A[i]*B[i])?

можно, если конечно я правильно понял задачу.

но запустить OCL и продолжить работу кода MQL, насколько мне известно, не получится, придется ждать завершения вычислений на OCL.

 
Andrey Dik:

можно, если конечно я правильно понял задачу.

но запустить OCL и продолжить работу кода MQL, насколько мне известно, не получится, придется ждать завершения вычислений на OCL.


Если честно, то не понял, что же в итоге можно - поясните пожалуйста!

Так как, если можно пункт 1, то это противоречит высказыванию во втором Вашем предложении. Или надо просто сразу сувать два цикла в один кернел, тогда они будут независимо считаться?

Просто очень интересно, как это можно использовать при реальной торговле - что можно делегировать в эти вычисления.

И, если идет расчет кернела на видеокарте, то будет ли загрузка в этот момент одного ядра процессора на 100% пока не окончится расчет?

 
Aleksey Vyazmikin:

Если честно, то не понял, что же в итоге можно - поясните пожалуйста!

Так как, если можно пункт 1, то это противоречит высказыванию во втором Вашем предложении. Или надо просто сразу сувать два цикла в один кернел, тогда они будут независимо считаться?

Просто очень интересно, как это можно использовать при реальной торговле - что можно делегировать в эти вычисления.

И, если идет расчет кернела на видеокарте, то будет ли загрузка в этот момент одного ядра процессора на 100% пока не окончится расчет?


У вас карта поддерживает OCL? Наверное да, раз интересуетесь. Так потратьте 5 минут, проверьте и нам расскажите ))

 
Alexey Volchanskiy:

У вас карта поддерживает OCL? Наверное да, раз интересуетесь. Так потратьте 5 минут, проверьте и нам расскажите ))


Дык, коли я умел, то давно бы всё это опробовал, но, увы. А, вот Andrey Dik явно с этим разбирался, раз использует в торговле, как я понял, поэтому и интересно услышать человека с опытом в этом вопросе.

 
Aleksey Vyazmikin:

Дык, коли я умел, то давно бы всё это опробовал, но, увы. А, вот Andrey Dik явно с этим разбирался, раз использует в торговле, как я понял, поэтому и интересно услышать человека с опытом в этом вопросе.


А, вот так дела обстоят, ясно.

Причина обращения: