Bonjour,
j'ai un niveau moyen en développement en Java (et je suis pas bon en C++) et pour un programme que je développe, la majeure partie des calculs consiste à comparer des images deux par deux, pixel à pixel (en fait deux tableaux d'int à 2 dimensions type 600x600 en moyenne). Mettons pour simplifier que je fais la somme des différences case à case entre deux tableaux (oui c'est bête).
Jusqu'à présent, le but était essentiellement de faire une preuve de concept. Mais comme dans la vraie vie, jamais rien ne se déroule comme prévu, je n'ai pas eu le temps de redévelopper les choses bien, des utilisateurs s'étant mis à utiliser mon bout de code Java un peu moisi qui leur facilite beaucoup la vie.
C'est un projet auquel j'ai peu de temps à consacrer et je cherche la meilleure manière d'accélérer les comparaisons effectuées. Exemple, pour tirer parti de tous les processeurs d'une machine, j'ai utilisé un ExecutorService en Java pour multiplier les fils d'exécution. Le résultat est pas mal.
Mais je voudrais aller plus loin et avant de considérer la réécriture de mon programme en C++ (ou dans un autre langage), je me demandais si l'OpenCL pourrait m'aider dans mon problème. Je n'y connais pas grand chose et je me demande si l'intégration d'un bout de code OpenCL (avec JavaCL ?) pourrait m'aider à accélérer franchement mes traitements ou si le temps nécessaire à faire le pont avec OpenCL fera que je ne vais rien y gagner au final ?
Si mon idée est débile, dites le moi tout de suite, c'est pour ça que je suis là
Si vous avez des suggestions intelligentes, je suis preneur, quelle que soit la solution
Merci de m'avoir lu !
Partager