использовать GPU для оптимизации в R (OpenCL)?

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

Я видел пример OpenCL, который не выглядел слишком сложным для базовых вычислений, поэтому я надеюсь просто переписать функцию числового градиента, используемую подпрограммой оптимизации на языке OpenCL, и втиснуть ее в функцию оптимизатора, чтобы каждый раз оптимизирует какую-то функцию, он будет выполнять независимые вычисления в графическом процессоре.

Идея: использовать GPU для расчета функционалов и градиентов во время оптимизации (например, nlminb()).

Проблемы: 1. Как подключиться к процедуре оптимизации? (Кажется, я не могу найти файл C, в котором выполняется оптимизация)

2, Могу ли я просто заменить расчет градиента тем, что я готовлю для GPU?

3, У кого-нибудь что-то подобное работает? Есть идеи, заметки?

Спасибо и хорошего дня!

PS: Если вы думаете, что это не ускорит оптимизацию, это сложно закодировать / сложно сделать и т. д., пожалуйста, дайте мне знать! Я очень неопытный и паршивый "программист".


person Anim Mina    schedule 08.07.2013    source источник


Ответы (1)


Вы можете скомпилировать R, связанный с одной из оптимизированных для OpenCL библиотек BLAS. Но из-за попыток ускорить R с помощью других библиотек BLAS результаты могут быть ограничены особые случаи. Ваш может быть одним из них.

person John    schedule 09.07.2013
comment
спасибо за подсказку, я понятия не имел об этом. Бад, правильно ли я понимаю, что это будет вмешиваться в мои подпрограммы, где я явно запускаю вычисления на нескольких ядрах? (маклаппли) - person Anim Mina; 09.07.2013
comment
Нет, я считаю, что это как раз наоборот. При выполнении явно многоядерных команд это произойдет независимо от того, скомпилировано ли с оптимизированным BLAS или нет. Что это сделает, так это ускорит базовые команды, где вы не делаете такой запрос. Вы также путаете ссылку, которую я вам отправил, с тем, что вы хотите сделать. Вам нужен оптимизированный для OpenCL BLAS. Я помню один, написанный для графических процессоров AMD, но я не знаю об общей оптимизации OpenCL. - person John; 09.07.2013
comment
Я понял часть, что это ускорит все. Я просто знаю, что все равно не смогу написать новый BLAS. Я должен ждать готового решения, когда дело доходит до BLAS, потому что единственное, что я мог бы закодировать, — это вычисление градиентов cuda, если бы я знал, как использовать функцию оптимизатора. - person Anim Mina; 09.07.2013