Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. Appunti CUDA:
  2.  
  3. 20-Series Architecture
  4.  
  5. La Cache L2 e' piu piccola rispetto alla somma delle L1 dei singoli core
  6.  
  7. ogni thread ha fino a 256 registri.
  8.  
  9. Ogni blocco di thread e' suddiviso in pacchi da 32 Thread, questi 32 thread vengono eseguiti in sincrono.
  10.  
  11. Quando viene eseguito codice, alla suddivisione di branch vengono fermati i thread che devono saltare dopo l'else finche quelli dentro la if finiscono.
  12.  
  13. GUIDA AL LANCIO DI KERNEL:
  14.  
  15. Bisogna fare partire sufficienti thread in modo che venga nascosta la latenza.
  16.  
  17. Su Serie-200 almeno 20 warp (576) circa thread.
  18.  
  19. Come funzionano accessi a memoria:
  20.  
  21. Bisogna essere consapevoli del fatto di come allochiamo la memoria (posizionamento)
  22. in modo da utilizzare al meglio la cache.
  23.  
  24. Avere algoritmo che accede alla memoria in maniera lineare (e' meglio anche se piu' complesso)
  25. cioe' avere accessi coerenti, cioe non avere accessi sparsi in giro per la memoria.
  26.  
  27. Esempio con matrice 32x32:
  28.  
  29. Matrice caricata su 32 blocchi ogni colonna viene caricata su un blocco. Se tutti i thread accedono a stessa colonna siamo in merda
  30. perche' si congestiona la via di accesso per quel determinato blocco
  31.  
  32. Se allcochiamo 32x33 rompiamo il pattern e gli elementi vengono caricati in modo piu, casuale
  33. in modo da rendere le vie di accessi meno congestionate.
  34.  
  35. #####################################################
  36.  
  37. Perche paralizzazione e' cosi difficile?
  38.  
  39. E, difficile perche bisogna bilanciare i seguenti aspetti:
  40. Parallismo massivo
  41. Efficienza Lavoro
  42. Preservazione della localita
  43. Bilanciamento del carico
  44.  
  45. Qualsiasi algoritmo seriale e' piu corto rispetto allo stesso parallelizato
  46.  
  47. ESEMPI:
  48.  
  49. Depth first:
  50.  
  51. Visione dellalbero fino alla prima foglia poi si va in backtracking per vedere le altre foglie.
  52.  
  53. Questo ha buona localita ma scarsa paralizzazione
  54.  
  55. Breath first:
  56. Visita prima un livello alla volta fino ad arrivare al livello delle foglie.
  57.  
  58. Questo ha buona localita e paralizzazione decente.
  59.  
  60. Localita VS Load-Balancing
  61.  
  62. meglio con ray tracing.
  63.  
  64. k-d Tree Construction
  65.  
  66. ####################################33
  67.  
  68. Esercizio:
  69.  
  70. Ogni thread ha una particella di cui si calcola la forza che applica sulle altre particelle
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement