Алтернатива на lsqnonlin от MATLAB

Здравейте!

Направил съм скрипт на MATLAB, който използва функцията за минимизиране на квадратичен функционал lsqnonlin от Optimization Toolbox. Тъй като тази функция е в частта от кода, която се изпълнява много пъти (независими един от друг, може да се разглеждат като симулации), времето за изпълнение на скрипта е от порядъка на десетки минути до часове на съвременен многоядрен процесор.

Затова искам да преправя скрипта така, че да се изпълнява на видеокарта (GPU). За съжаление, това не може да стане на MATLAB (Optimization Toolbox не е съвместим с GPU). Моля Ви за съвет към каква технология да се насоча, за да може кодът да се изпълнява на GPU. Не споделям код, тъй като единственото нещо, релевантно към проблема ми, е lsqnonlin.

Така че просто Ви моля да изразите мнение коя технология, притежаваща функция за нелинейно оптимизиране (nonlinear optimization, nonlinear least-squares) и е GPU-съвместима, е уместно да разгледам.

Например, такава функция от Python е https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html, но не знам дали може да се подкара на видеокарта. Тъй като минимизирането на квадратичен функционал е доста стандартна задача от математическа гледна точка, убеден съм, че и другите платформи като R и т. н. имат подобна функционалност. За съжаление, стандартната CUDA библиотека все още няма такава, но сигурно има third-party пакети.

Благодаря Ви предварително!