използване на GPU при оптимизация в R (OpenCL)?

въз основа на идея от друга тема, надявах се, че можете да ми помогнете с тази идея / да ме тласнете в правилната посока.

Виждал съм пример за OpenCL, който не изглежда твърде сложен за основни изчисления, така че се надявам просто да пренапиша функцията за числов градиент, която рутината за оптимизация използва в езика OpenCL, и да я вмъкна във функцията за оптимизиране, така че всеки път, когато ще оптимизира някои функции, ще направи независимите изчисления в GPU.

Идея: Използвайте 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
благодаря за съвета, нямах представа за това. Добре разбирам ли правилно, че ще се намеси в моите рутинни процедури, когато изрично изпълнявам изчисления на множество ядра? (mclapply) - 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