AccelerEyes a annoncé en décembre 2012 qu'elle travaillait avec Mathworks sur le code GPU et a abandonné son produit Jacket pour MATLAB :
http://blog.accelereyes.com/blog/2012/12/12/exciting-updates-from-accelereyes/
Malheureusement, ils ne vendent plus de licences Jacket.
D'après ce que j'ai compris, la solution Jacket GPU Array basée sur ArrayFire était beaucoup plus rapide que la solution gpuArray fournie par MATLAB.
J'ai commencé à travailler avec gpuArray, mais je constate que de nombreuses fonctions sont mal implémentées. Par exemple, une simple
myArray(:) = 0
est très lent. J'ai écrit quelques noyaux CUDA personnalisés, mais la fonctionnalité standard de MATLAB mal implémentée ajoute beaucoup de surcharge, même si l'on travaille avec gpuArrays de manière cohérente dans tout le code. J'ai résolu certains problèmes en remplaçant le code MATLAB par du code CUDA écrit à la main - mais je ne veux pas réimplémenter la fonctionnalité standard de MATLAB.
Une autre fonctionnalité qui me manque est celle des matrices GPU éparses.
Mes questions sont donc les suivantes :
Comment accélérer les implémentations GPU par défaut fournies par MATLAB, qui sont mal mises en œuvre ? En particulier, comment puis-je accélérer les opérations sur les matrices éparses dans MATLAB en utilisant le GPU ?