Actualités
Une nouvelle version de NSIMD a été publiée comprenant le support des GPUs !
15 décembre 2020

Une nouvelle version de NSIMD a été publiée comprenant le support des GPUs ! #hpc #simd #gpu #intel #amd #arm #sve #nvidia #cuda #rocm

La nouvelle version de NSIMD apporte de nombreuses corrections de bogues, un meilleur support pour les extensions SIMD déjà prises en charge, de meilleurs tests, une meilleure documentation. Nous avons ajouté des modules à NSIMD. Un module est un ensemble de fonctionnalités qui sont proposées aux utilisateurs, généralement en C++ uniquement. Cette version est livrée avec cinq modules. Trois d'entre eux ajoutent le support pour GPUs et proposent une abstraction à CUDA et ROCm/HIP. Un autre module fournit la famille de générateurs de nombres pseudo-aléatoires random123 tandis que le dernier module donne accès à une implémentation vectorisée des nombres à virgule fixe. Nous avons également étendu le support des float16 aux GPUs.



Quelques nombres sur cette nouvelle version :
- ~21 000 lignes de code Python qui génèrent
- ~570 000 lignes de code C et C++ incluant plus de
- 100 000 tests unitaires couvrant les
- 4 vendeurs matériel (Intel, Arm, AMD and Nvidia) incluant
- 17 architectures SIMD/GPU.

Il suffit d'un compilateur conforme C++98 pour compiler NSIMD, mais les utilisateurs qui ont accès à un compilateur conforme C++20 peuvent utiliser l'API NSIMD correspondante qui bénéficie des concepts pour les arguments template.