7
votes

Questions d'entrevue sur la programmation CUDA?

J'ai une interview à venir dans une semaine d'une semaine pour une position de niveau d'entrée qui implique une programmation dans CUDA (espérons-le en C).

Je me demandais si quelqu'un peut suggérer des questions d'entretien que je peux m'attendre lors de l'entretien.

J'ai parcouru le Guide de programmation officiel, mais je ne suis pas tout ce qui est pratique actuellement.

Merci.


3 commentaires

Avez-vous essayé d'écrire quelque chose de non-trivial? Simulation N-Body ou quelque chose comme ça? Cuda exige que vous planifiez attentivement l'accès à la mémoire coopérative afin d'obtenir une sorte de performance. Sans aucune expérience pratique, vous serez découvert.


Malheureusement non. La simulation n-corps et l'ILK est trop complexe pour moi! Mais j'ai bavardé avec Cuda pendant environ 4-5 mois maintenant. J'ai écrit un certain nombre de programmes pour comprendre les routines et l'architecture bien.


Je ne veux pas dire spécifiquement N-corps, mais tout programme exploite la coopération de thread serait un bonus. Sinon, vous n'obtiendrez aucune augmentation significative des performances du GPU. N-Body n'est qu'un exemple (simple), mais d'autres aussi bien. Multiplication Matrix, évaluant les matrices de distance, ce genre de chose. Si vous essayez d'apprendre Cuda en mémorisant le guide de l'utilisateur, vous vous plongerez et brûlerez.


3 Réponses :


24
votes

Quelques questions je pense que vous devriez préparer:

  • Combien de types de souvenirs différents sont dans un GPU?
  • Qu'est-ce qui signifie coalescté / non calcalé?
  • Pouvez-vous implémenter un noyau de transposition matricielle?
  • Qu'est-ce qu'une chaîne?
  • Combien de chaînes peuvent courir simultanément à l'intérieur d'un multiprocesseur?
  • Quelle est la différence entre un bloc et un thread?
  • peut filmer communiquer entre eux? et des blocs?
  • Pouvez-vous décrire comment fonctionne un cache?
  • Quelle est la différence entre la mémoire partagée et les registres?
  • Quels algorithmes fonctionnent mieux sur le GPU? Données liées ou CPU liées?
  • Quelles étapes allez-vous jouer au port d'une application à Cuda?
  • Qu'est-ce qu'une barrière?
  • Qu'est-ce qu'un flux?
  • Pouvez-vous décrire ce que signifie occupation d'un noyau?
  • Qu'est-ce que signifie la structure du tableau VS Tableau de structures?

2 commentaires

@fabriziom merci beaucoup! C'était vraiment très utile. Je peux répondre à la plupart d'entre eux :) Je me sens un peu confiant maintenant.


C'est censé être une interview et non une émission de quiz. Vous voulez demander quelque chose qui les oblige à montrer comment les roues de leur tête tournent, ne vérifient pas qu'ils ont lu le Guide de l'utilisateur.



5
votes

Si c'est un rôle scientifique, attendez-vous aux questions sur le point flottant et la précision numérique, vous devriez notamment examiner l'échantillon de réduction dans le SDK NVIDIA, car cela illustre également une charge complète des points de Fabrizio.


0 commentaires

8
votes

"Vous avez n vecteurs de longueur m (n >> m). Dis-moi comment vous allez concevoir un noyau pour évaluer la matrice de distance. Portez une attention particulière à la manière dont le problème est sous-divisé et à la manière La coopération du fil peut être utilisée pour améliorer l'occupation.

Comment votre réponse à cette question changerait-elle si M >> N? "

L'idée ici est de ne pas vous procurer un code d'écriture, mais pour vous faire penser à voix haute. Cela montre que vous savez vraiment utiliser la technologie GPGPU et ne pas simplement régurgiter le Guide de l'utilisateur.


0 commentaires