FAQ CUDAConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 43, dernière mise à jour : 6 juillet 2017 

 
OuvrirSommaireGPGPUVocabulaire

Il s'agit d'une simple idée : pour simplifier le développement, il faut utiliser partout la même architecture, parfois au détriment des performances.

Le CPU tend à être le meilleur pour les opérations sérielles, avec beaucoup de branchements et d'accès aléatoires à la mémoire. Le GPU, a contrario, excelle sur des calculs massivement parallèles avec des flottants.

Le calcul homogène, c'est simplement utiliser le même processeur pour toutes les opérations.

On parle aussi de calcul homogène s'il est effectué sur une seule et même plateforme : Windows, macOS, GNU/Linux, GNU/Hurd…

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Le calcul sériel

Il s'agit d'une simple idée : pour obtenir la meilleure efficacité, les applications devraient utiliser les deux processeurs des ordinateurs : le CPU et le GPU.

Le CPU tend à être le meilleur pour les opérations sérielles, avec beaucoup de branchements et d'accès aléatoires à la mémoire. Le GPU, a contrario, excelle sur des calculs massivement parallèles avec des flottants.

Le calcul hétérogène, c'est simplement utiliser le bon processeur pour la bonne opération.

On parle aussi de calcul hétérogène s'il est effectué sur différentes plateformes : Windows, macOS, GNU/Linux, GNU/Hurd…

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Le calcul sériel

Aussi dit calcul en série ou calcul séquentiel.

Il s'agit de calcul qui ne peut se diviser en parties distinctes : elles doivent se dérouler l'une après l'autre.

Les données sur lesquelles un processeur de calcul sériel seront envoyées une à une, en file.

Les CPU sont des processeurs à calcul sériel. En effet, on leur demande d'effectuer de longs calculs complexes (c'est-à-dire à multiples embranchements) sur une assez petite quantité de données. Jusqu'à présent, ils étaient aussi utilisés pour des tâches relevant du calcul parallèle, parce que leur puissance le leur permettait. Désormais, la fréquence des processeurs ne peut plus augmenter (les limites de la physique sont presque atteintes à des fréquences de 5 Ghz).

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Le calcul hétérogène
Lien : Données parallèles

Il s'agit de calcul qui peut être divisé en parties distinctes, chacune exécutée en même temps que les autres.

Les données sur lesquelles un processeur de calcul parallèle seront envoyées ensemble, d'un seul coup, pour autant que la bande passante le permette.

Les GPU sont des processeurs à calcul parallèle. En effet, on leur demande d'effectuer peu de traitements quantitatifs, mais sur une masse énorme de données. De plus, ils ont des restrictions budgétaires, qui ont fait qu'ils ne peuvent pas intégrer des processeurs rapides (c'est-à-dire cadencés à plusieurs gigahertz, le premier ayant été atteint il y a peu). Les ingénieurs ont donc dû trouver un moyen de traiter autant de données en très peu de temps. La solution retenue a été beaucoup d'unités de calculs à faible fréquence, qui fonctionnent en parallèle.

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Le calcul hétérogène

Des données sont parallèles si elles peuvent être traitées séparément, et en parallèle. Par exemple, des phénomènes physiques indépendants (agissant sur des objets différents). Des données parallèles peuvent aussi arriver parallèlement au processeur pour traitement.

Ce concept de données parallèles doit être compris avec celui de calcul parallèle. L'un ne peut aller sans l'autre : dans le cas de calcul sériel, pas besoin de données parallèles. Seules les données parallèles permettent de pleinement utiliser la capacité d'un processeur à calcul parallèle. Ce genre de processeur peut en effet traiter des flux de données, sans cesse augmentés.

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Calcul parallèle
Lien : Calcul sériel

L'hôte est le processeur qui ordonne à l'autre (un GPU) d'effectuer des calculs précis sur un ensemble de données donné. Pour le moment, l'hôte est le CPU.

Le processeur de l'hôte effectue du calcul sériel, toujours, pour le moment.

L'hôte est chargé de fournir le travail, de l'ordonner, d'en récupérer les résultats, mais aussi de gérer les différentes erreurs qui pourraient advenir.

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Calcul sériel

Le périphérique est celui qui effectue les calculs demandés par l'hôte. Pour le moment, il s'agit du GPU.

Le processeur du périphérique effectue du calcul parallèle, toujours, pour le moment.

Le périphérique est chargé de recevoir le travail, de l'exécuter, d'écrire le résultat sur la mémoire du GPU, de retourner les erreurs éventuelles.

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Calcul parallèle

Un kernel est une fonction qui sera exécutée, sur le CPU, sur le GPU ou n'importe où.

Un kernel a, pour vocation, d'être souvent instancié, pour respecter le principe de la parallélisation des données.

Un kernel doit commencer par choisir ses données, ensuite il effectue sa tâche sur ces données uniquement et retourne le résultat dans la mémoire du GPU.

Les kernels sont limités en longueur : sous CUDA, ils sont limités à 2 000 000 d'instructions PTX, ce qui est fort long.

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Parallélisme des données
Lien : PTX

Si un kernel est appelé de manière synchrone, il ne retournera que quand les calculs auront été effectués.

Si un kernel est appelé de manière asynchrone, il retournera avant que les calculs soient effectués.

Les fonctions d'accès à la mémoire (lecture et écriture sur le GPU depuis le CPU) sont synchrones : elles attendent que tous les threads aient fini de travailler avant d'effectuer leur opération.

Créé le 29 juin 2009  par Thibaut Cuvelier

Lien : Parallélisme des données

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009-2017 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.