View Single Post
Old 15-11-2017, 06:50   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da CrapaDiLegno Guarda i messaggi
Si certo, più sforzi ad utilizzare un compilatore piuttosto che un altro. Dal punto di vista di chi scrive il codice non cambia una mazza, sopratutto perché le routine utilizzate sono scritte in ASM e si chiamano quelle, dato che nessun compilatore può astrarre in maniera automatica lo scopo di un calcolo complesso come quello da fare su una SIMD.
Hai idea di quanto siano complicati i calcoli realizzati da applicazioni HPC et similia? Mi pare proprio di no.

Le parti in assembly, se ci sono, sono relative a funzioni di libreria che vengono utilizzate per "comporre"/calcolare ciò che, alla fine, serve realmente.

Tali funzioni di libreria sono scritte per lo più in Fortran (sì, hai letto bene) e soltanto negli ultimi anni ne sono state scritte alcune versioni in C++, oppure vengono utilizzati dei wrapper per poter utilizzare direttamente quelle scritte in Fortran.

Per poter sfruttare meglio che si può le capacità di calcolo di soluzioni HPC come queste vengono sfruttate le funzioni intrinsic, che servono a "segnalare" al compilatore il contesto d'esecuzione (in che modo vengono utilizzati i dati) o direttamente la tipologia di istruzioni da impiegare.

Ovviamente ci sono anche parti in assembly dove serve / è stato fatto, ma impiegare direttamente l'assembly è estremamente costoso.
Quote:
Quindi al massimo puoi parlare di soluzioni che hanno un diverso supporto, ma non certo che usare un determinato HW piuttosto che un altro diventa complicato per il programmatore.
Parli così perché non hai la minima idea di come funzionino queste cose.

Prendi un algoritmo che si presta per calcoli di questo tipo, riporta il normale codice C/C++/Fortran, e poi quello CUDA (visto che nVidia va forte in questo mercato) e quello Xeon Phi.
A quest'ultimo posso provvedere io, visto che è veramente e te lo posso realizzare in TRE versioni: con #pragma per il compilatore C/C++/Fortran, con le estensioni CILK+, o con MYO. Sì, Intel offre ben TRE (DIVERSI!) modelli/paradigmi per poter sfruttare il suo hardware, e non ho citato nemmeno le OpenCL perché queste sono più generali (tutti i produttori di CPU/GPU possono sfruttarle).

Se prendi i codici finali, noterai delle "LEGGERISSIME" differenze. Eppure il calcolo eseguito, alla fine, è esattamente lo stesso.
Quote:
Inoltre la suddetta architettura non ha molto di "esoterico", certamente è meno fantasiosa nell'avere un inutile core x86 per pilotare 2 FPU che sono quelle addette a lavorare per davvero.
Ma di quali FPU parli? Come ha detto giustamente lucusta, qui parliamo di unità SIMD. L'FPU x86, da quando è stato introdotta x64 è DEPRECATA.

E a parte questo, continui a non avere la minima idea di come funzionino non sole unità SIMD x86, ma la recentissima AVX-512 (che poi è quella utilizzata in queste soluzioni HPC).

Giusto per essere chiari: c'è PIENA SINERGIA fra l'unità di calcolo "intera" x64 e l'unità SIMD. D'altra parte basta prendere un qualunque pezzo di codice, disassemblarlo, e vedere il mix delle suddette istruzioni che ne viene fuori.
Quote:
Eh? Scusa ma che specifiche hai letto? Quelle della prima versione vecchia di 2 anni? Per la corrente in produzione e vendita e installate sugli ultimi super computer leggo 8TFLOPS in FP32 e 4TFLOPS in FP64 e 16TFLOPS in FP16.
Dal tuo link:

"Operating at 1 GHz, the PEZY-SC2 has a peak performance of 8.192 TFLOPS (single-precision) and 4.1 TFLOPS (double-precision) while consuming around 180 Watts.
[...]
At 1 GHz, the SC2 can peak at 16.4 TFLOPS for half precision."

Quote:
Il tutto con consumo di picco di 180W e 130W di media (che la rende la scheda acceleratrice più efficiente finora costruita, persino migliore delle soluzioni nvidia che le stanno poco dietro). Quanti TFLOPS fa una Knight Landing e in quanti W?
Su questo t'ha risposto lucusta.
Quote:
Ci sarà un motivo per cui la presenza di queste schede acceleratrici siano aumentate nel tempo nella classifica. E infatti stanno prendendo piede proprio nei server HPC, IA e DeepLearning (non so se hai capito che ogni scheda a 16FLOPS in FP16, tutt'altro che "poco" per il DeepLearning).
Tu che dici, ci sarà un motivo anche per l'adozione in crescita di Xeon Phi?
Quote:
Per quanto riguarda la MICRO-Architettura, è molto ma molto probabile che sarà pensata per fare un die con il core e "incollarlo" (usando la sintassi di Intel) ad un bel die separato creato dal Koduri che eseguirà i calcoli veri. L'MCM di Intel è promettente sotto questo punto di vista, e credo proprio che potrebbe salvargli la vita permettendogli di integrare roba non x86 per progredire.
Per com'è stata scritta la notizia, NON si parla di una nuova ARCHITETTURA, ma di una MICRO-architettura, come avevo già evidenziato. Ergo: Xeon Phi è ancora lì.

Poi POTREBBERO anche aggiungere uncore diversi, ma non è emerso dalla notizia/press release.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 
1