
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
EECE.6540 Heterogeneous Computing (University of Massachusetts Lowell) - 46. Concetti di base FPGA
46. Concetti di base FPGA
Questo video illustra i concetti di base degli FPGA (Field Programmable Gate Array). A differenza delle CPU, gli FPGA possono essere programmati per adattarsi a risorse hardware specifiche, il che significa che sono altamente personalizzabili. Il video discute l'importanza della latenza nella progettazione dei circuiti e come può essere bilanciata massimizzando f max. Introduce il concetto di progettazione della pipeline per aumentare la frequenza con cui è possibile eseguire un calcolo, oltre a discutere i percorsi dei dati e i percorsi di controllo in un circuito. Infine, il video discute l'occupazione del circuito in un FPGA e come la diminuzione delle bolle e l'aumento dell'occupazione possono aumentare f max.
47. Analisi del progetto (I): analisi delle prime immagini FPGA
47. Analisi del progetto (I): analisi delle prime immagini FPGA
Questa sezione del video si concentra sul processo di analisi delle prime immagini FPGA per un progetto DPC++. Il relatore spiega i passaggi coinvolti, come la compilazione del programma, la generazione del binario FPGA e l'esecuzione della profilazione. Il video include una demo su come generare report e interpretare i vari pannelli informativi forniti nei report. Il relatore analizza anche le prime immagini FPGA di un modulo b2 e discute i vari blocchi logici, i loop, l'unità di carico e il fattore di srotolamento. Discutono anche di come la progettazione di una funzione del kernel può avere un impatto significativo sulla progettazione interna su FPGA e forniscono esempi di come i loop interni ed esterni possono essere srotolati per aumentare il throughput. Gli esempi illustrano la flessibilità del linguaggio di programmazione ad alto livello nell'influenzare le risorse hardware dell'FPGA.
48. DPC++ FPGA Design Analysis (II): Runtime Profiling
48. DPC++ FPGA Design Analysis (II): Runtime Profiling
In questo video, il relatore discute il processo di analisi delle prestazioni di runtime di un programma utilizzando strumenti che raccolgono dati sulle prestazioni aggiungendo registri di strumenti di profilatura ai flussi di bit FPGA. Dimostrano come compilare per il profiling e interpretare i risultati del profiling collettivo utilizzando il profiler dinamico Intel FPGA con contatori delle prestazioni aggiunti dall'utente. Mostrano come il profiler V2 visualizza le funzioni del kernel e gli eseguibili utilizzati per analizzare i risultati del profilo di runtime e come identificare i colli di bottiglia delle partizioni e ottimizzarli. L'esempio utilizzato è un kernel di modifica della matrice che ha avuto molti accessi alla memoria globale, che è stato ottimizzato utilizzando la memoria locale per ridurre la comunicazione con la memoria globale e migliorare l'efficienza della progettazione.
EECE.6540 Calcolo eterogeneo (Università del Massachusetts Lowell) - 49. Esempi OpenCL
49. Esempi OpenCL (I)
Il video di YouTube "OpenCL Examples (I)" copre l'implementazione della moltiplicazione di matrici utilizzando cicli nidificati nella programmazione C e la sua implementazione come kernel OpenCL. Il docente spiega come utilizzare due livelli di cicli nidificati per il calcolo del prodotto scalare dell'elemento risultante nella matrice e come ogni elemento di output della matrice C viene trattato come un elemento di lavoro separato in OpenCL. Il video copre anche i passaggi necessari per preparare il kernel OpenCL per l'esecuzione e recuperare la matrice risultante da un dispositivo a un host, nonché impostare le dimensioni del gruppo di lavoro ed eseguire il kernel con argomenti del kernel modificati. Inoltre, viene fornito un codice di esempio per la moltiplicazione di matrici e il relatore dimostra il processo per ottenere ID dispositivo e piattaforma su Mac OS e creare un oggetto programma su piattaforme diverse. Infine, il video spiega la gestione del buffer, tracciando le risorse allocate sul lato host e le risorse OpenCL utilizzate e fornisce un semplice esempio di kernel di moltiplicazione.
Questo video illustra vari esempi di utilizzo di OpenCL, tra cui la moltiplicazione di matrici, la rotazione delle immagini e il filtraggio delle immagini. Per la rotazione dell'immagine, il relatore spiega come scomporre il problema utilizzando la decomposizione dell'input e dimostra la funzione del kernel utilizzata per identificare la posizione originale e nuova di ciascun pixel. Per il filtraggio delle immagini, il relatore discute il concetto di creazione di oggetti immagine sul lato del dispositivo e l'uso del campionatore OpenCL per definire come accedere all'immagine. Presentano anche un'implementazione di esempio della funzione di convoluzione dell'immagine con due cicli for nidificati. Il video si conclude con una dimostrazione dell'utilizzo di OpenCL per eseguire un filtro di convoluzione su un'immagine e verificare i risultati.
Un confronto tra SYCL, OpenCL, CUDA e OpenMP per la classificazione dei vettori di supporto massivamente paralleli ( WOCL / SYCLcon 2022 )
Un confronto tra SYCL, OpenCL, CUDA e OpenMP per la classificazione dei vettori di supporto massivamente paralleli
Il video confronta le prestazioni di SYCL, OpenCL, CUDA e OpenMP su diverse piattaforme hardware per la classificazione di macchine vettoriali a supporto massivamente parallelo. Il relatore spiega la parallelizzazione della moltiplicazione matrice-vettore con un'implementazione chiamata Parallel Fibonacci, che supporta l'esecuzione multigpu, ma solo la classificazione binaria e calcoli densi. L'hardware utilizzato per i test include GPU Nvidia A100 e RTX 380, GPU AMD Radeon Pro 7 e CPU Intel Core E9-10-09020X. I risultati mostrano che CUDA è il backend più veloce per le GPU Nvidia, mentre OpenCL è il backend più veloce per le CPU. SYCL è user-friendly, mentre Hipsicle è più veloce di DPC++ e OpenCL per un uso economico. Inoltre, il relatore discute il lavoro futuro, come l'analisi delle prestazioni sugli FPGA, l'aggiunta del supporto per i sistemi distribuiti tramite MPI e l'utilizzo di calcoli di precisione mista e hardware speciale di apprendimento automatico come i tensor core di NVIDIA.
Raggiungere un C++ ancora più ricco nei kernel OpenCL con l'uso di libclcxx ( WOCL / SYCLcon 2022 )
Raggiungere un C++ ancora più ricco nei kernel OpenCL con l'uso di libclcxx
Il video illustra l'uso di libclcxx per consentire l'integrazione delle librerie C++ nello sviluppo del kernel open source. Il progetto integra i tratti di tipo, una libreria essenziale per la meta programmazione in C++, con l'obiettivo di esporre più funzionalità C++ agli sviluppatori. Il video mostra come la libreria dei tratti di tipo può ottimizzare le prestazioni dei kernel OpenCL attraverso la sua capacità di manipolare lo spazio degli indirizzi e i tipi di vettore. Il video incoraggia gli sviluppatori a sperimentare con la libreria e contribuire a ridurre i cicli di sviluppo ottenendo la massima compatibilità con C++. La libreria fornisce la documentazione sull'ossigeno in uno stile simile alle pagine di riferimento C++, facilitando agli sviluppatori la navigazione attraverso le nuove funzionalità.
SYCL oltre OpenCL: l'architettura, lo stato attuale e la direzione futura di hipSYCL ( IWOCL / SYCLcon 2020 )
SYCL oltre OpenCL: l'architettura, lo stato attuale e la direzione futura di hipSYCL
Il progetto hipSYCL è un'implementazione open source di SYCL che si rivolge alle GPU attraverso il modello di programmazione HIP anziché OpenCL. Consiste in un componente del compilatore, un'interfaccia falce e un runtime sicuro. Il compilatore sicuro identifica i kernel, gestisce l'allocazione della memoria locale e implementa un meccanismo di segnalazione. La funzione dispatch crea elementi specifici basati su kernel forniti dall'utente e le funzioni ottimizzate possono essere definite con rock prim. La direzione futura è consentire più back-end e rimuovere le restrizioni sul modello di compilazione statica. Il modello di invio delle operazioni sta passando a un invio in batch per una maggiore velocità effettiva delle attività e hipSYCL è interoperabile a livello di codice sorgente, consentendo la combinazione e la corrispondenza con hip e CUDA. Trattandosi di un progetto open-source, i contributori sono i benvenuti.
SYCL: il futuro è aperto, parallelo ed eterogeneo (Core C++ 2022 )
SYCL: il futuro è aperto, parallelo ed eterogeneo
In questo video sulla programmazione SYCL, il relatore sottolinea la necessità di aumentare il livello di astrazione per aumentare la produttività e attrarre più sviluppatori, poiché i modelli complessi richiedono una maggiore potenza di calcolo, soddisfatta dai sistemi di accelerazione. Viene sottolineata l'importanza della portabilità del software e di OneAPI, in quanto consente ai dispositivi di lavorare su CPU, GPU e altri dispositivi. Vengono inoltre discussi i vantaggi di SYCL, un modello di programmazione aperto, parallelo ed eterogeneo, con il relatore che evidenzia le numerose risorse e strumenti online disponibili per ottimizzare il codice e migliorare le prestazioni. L'oratore incoraggia gli spettatori a visitare oneapi.io e il loro canale YouTube per risorse e supporto.
Accelerazione GPU in Python
Accelerazione GPU in Python
Il video spiega come ottenere l'accelerazione GPU nella programmazione Python sfruttando la potenza delle unità di elaborazione grafica, che possono fornire una velocità fino a 10 volte superiore con il parallelismo dei dati. Vengono brevemente introdotti i due standard per il GPU Computing, OpenCL e CUDA, e il video dimostra l'uso di Pi OpenCL e CUDA per la moltiplicazione di matrici in Python. Il relatore spiega l'uso della memoria globale e del kernel per la moltiplicazione di matrici e discute anche l'algoritmo utilizzato per calcolare un elemento nel prodotto matrice-matrice. Viene discusso il codice per l'accelerazione GPU in C e Python, con enfasi sulla comprensione delle rappresentazioni interne delle matrici e dell'allocazione della memoria. Gli esercizi della lezione forniscono una base per un'ulteriore esplorazione del GPU Computing.
Presentazione di lancio di OpenCL 3.0 (IWOCL / SYCLcon 2020)
OpenCL 3.0 Avvia la presentazione
Il lancio di OpenCL 3.0 è discusso in questo video, con particolare attenzione alla sua importanza per la programmazione parallela di basso livello nel settore. OpenCL 3.0 non aggiunge nuove funzionalità all'API, ma fornisce un riallineamento dell'ecosistema per consentire a OpenCL di raggiungere più sviluppatori e dispositivi. Il relatore discute anche dell'aggiunta di estensioni per i processori DSP light, della roadmap per funzionalità future e del crescente ecosistema di compilatori di linguaggi kernel open source che possono generare kernel spirit per OpenCL Vulcan. Il feedback degli utenti è incoraggiato per aiutare a finalizzare le specifiche mentre il gruppo di lavoro si prepara per la prima ondata di implementazioni nei prossimi mesi.