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
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 2: Cos'è OpenCL™? (continua)
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 2: Cos'è OpenCL™? (continua)
In questo video, Justin Hensley discute la piattaforma e i modelli di memoria di OpenCL, che è importante comprendere quando si utilizza OpenCL per accelerare le applicazioni. Spiega che un host è connesso a uno o più dispositivi OpenCL, come GPU o processori multi-core, che dispongono di unità di calcolo che eseguono codice in un modello di dati multipli a singola istruzione. Gli elementi di lavoro hanno una memoria privata, mentre i gruppi di lavoro hanno una memoria locale condivisa, ogni dispositivo ha una memoria globale e costante e gli sviluppatori devono gestire in modo esplicito la sincronizzazione della memoria e i dati per ottenere le massime prestazioni. Inoltre, Hensley discute oggetti OpenCL come dispositivi, contesti, code, buffer, immagini, programmi, kernel ed eventi, che vengono utilizzati per inviare lavoro ai dispositivi, sincronizzare e profilare i dati. Infine, delinea come eseguire un programma OpenCL in tre semplici passaggi: creazione di oggetti del programma e del kernel, creazione di oggetti di memoria e creazione di code di comandi con eventi per garantire il corretto ordine di esecuzione del kernel.
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 3: Configurazione delle risorse
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 3: Configurazione delle risorse
Nell'episodio 3 della serie di tutorial su OpenCL, il relatore approfondisce la configurazione e la gestione delle risorse in OpenCL, coprendo argomenti come oggetti di memoria, contesto, dispositivi e code di comando. Viene inoltre discusso il processo di accesso e allocazione della memoria per le immagini, con particolare attenzione alle chiamate di lettura e scrittura delle immagini e ai formati supportati. Vengono esaminate le caratteristiche delle operazioni di memoria sincrone e asincrone, con una spiegazione di come il sistema di gestione degli eventi OpenCL può essere utilizzato per garantire il completamento del trasferimento dei dati. Infine, si consiglia agli utenti di interrogare le informazioni sul dispositivo con la chiamata CL get device info per scegliere il dispositivo migliore per il loro algoritmo.
allo spazio degli indirizzi host, viene utilizzato il CL nel buffer della mappa delle code. Infine, il buffer di copia della coda CLN viene utilizzato per copiare la memoria tra due oggetti di memoria.
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 4: Esecuzione del kernel
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 4: Esecuzione del kernel
In questa sezione, Justin Hensley copre l'argomento dell'esecuzione del kernel in OpenCL, spiegando che gli oggetti del kernel contengono una specifica funzione del kernel e sono dichiarati con il qualificatore del kernel. Analizza i passaggi per l'esecuzione di un kernel, inclusa l'impostazione degli argomenti del kernel e l'accodamento del kernel. Hensley sottolinea l'importanza dell'utilizzo degli eventi per gestire più kernel e prevenire problemi di sincronizzazione e suggerisce di utilizzare CL wait for events per attendere che vengano completati prima di procedere. Il video entra anche nei dettagli sulla profilazione dell'applicazione per ottimizzare i kernel che richiedono più tempo per essere eseguiti.
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 5: Programmazione con OpenCL™ C
AMD Developer Central: panoramica tecnica di OpenCL. Episodio 5: Programmazione con OpenCL™ C
Questo video illustra varie caratteristiche del linguaggio OpenCL™ C, incluse le funzioni degli elementi di lavoro, le funzioni dei gruppi di lavoro, i tipi di vettori e le funzioni di sincronizzazione integrate. Il video sottolinea l'importanza di utilizzare qualificatori dello spazio degli indirizzi corretti per un'efficiente scrittura parallela del codice e la condivisione della memoria tra gruppi di lavoro. Il concetto di tipi vettoriali viene discusso in dettaglio insieme all'uso dello spazio di memoria corretto per gli argomenti dei puntatori del kernel, le variabili locali e le variabili globali del programma. Inoltre, le funzioni matematiche integrate e le funzioni del gruppo di lavoro come barriere e memfence sono coperte con un suggerimento per controllare queste funzioni in fase di esecuzione.
Come utilizzare OpenCL per lavorare con la GPU
Come utilizzare OpenCL per lavorare con la GPU
Il video introduce OpenCL come uno strumento standard aperto che può funzionare sulla maggior parte delle nuove schede grafiche in Windows con l'installazione richiesta di CUDA o driver grafici specifici a seconda della scheda. L'oratore descrive un semplice programma, il processo di creazione di un kernel, i buffer per i dati, l'impostazione degli argomenti del kernel e la dimensione globale del lavoro e l'esecuzione del carico di lavoro sul dispositivo in OpenCL, confrontandolo con CUDA. I parametri coinvolti nella creazione di un kernel in OpenCL per il lavoro della GPU, l'accodamento del buffer di lettura, la deallocazione della memoria sono stati spiegati con codici di esempio per controllare i calcoli. Presentando un piccolo programma che applica una sottile sfocatura alle immagini in scala di grigi utilizzando OpenCL, il presentatore sottolinea che OpenCL ha più codice boilerplate rispetto a CUDA, ma è una soluzione aperta e standard applicabile a diverse schede grafiche e può essere riutilizzata su sistemi diversi indipendentemente dal produttore.
EECE.6540 Calcolo eterogeneo (Università del Massachusetts Lowell)
1. Breve introduzione all'elaborazione parallela con esempi
Questo video fornisce una breve introduzione all'elaborazione parallela con esempi. Il relatore spiega che il calcolo parallelo comporta la suddivisione di un'attività più grande in attività secondarie più piccole da eseguire in parallelo. Due strategie principali per raggiungere questo obiettivo sono divide et impera e disperdi e raccogli. Il video fornisce esempi di applicazioni naturali e artificiali che hanno intrinsecamente molto parallelismo, come i sensi umani, le auto a guida autonoma e la crescita cellulare. Il video illustra anche i vantaggi dell'elaborazione parallela e dimostra come può essere applicata all'ordinamento, alla moltiplicazione di vettori, all'elaborazione di immagini e alla ricerca del numero di occorrenze di una stringa di caratteri in un corpo di testo. Infine, il video introduce il processo di riduzione, noto anche come processo di sommatoria, per raccogliere ed elaborare i risultati ottenuti da risorse parallele.
2. Concorrenza, parallelismo, scomposizione di dati e attività
2. Concorrenza, parallelismo, scomposizione di dati e task
Il video approfondisce i concetti di concorrenza e parallelismo, nonché l'uso di attività e scomposizioni di dati e le tecniche per la scomposizione dei dati per il parallelismo e la concorrenza. La legge di Amdahl viene esplorata come mezzo per calcolare la velocità teorica durante l'esecuzione di attività su più processori. L'importanza dei grafici delle dipendenze tra attività viene evidenziata nell'identificazione delle dipendenze tra attività quando si suddivide un problema in attività secondarie. I metodi per la scomposizione dei dati, come i dati di input e il partizionamento dei vettori di riga, sono indicati come utili per l'esecuzione del calcolo. Le operazioni atomiche e la sincronizzazione sono descritte come vitali per generare il risultato corretto dopo che tutte le attività secondarie sono state completate.
3. Calcolo parallelo: software e hardware
3. Calcolo parallelo: software e hardware
Il video discute diversi approcci per raggiungere alti livelli di parallelismo nell'informatica. Il relatore descrive le tecniche hardware e software utilizzate per eseguire il calcolo parallelo, inclusi il parallelismo a livello di istruzioni (ILP), i thread software, le CPU multi-core, i processori SIMD e SPMD. Il video spiega anche l'importanza della densità del parallelismo e il concetto di unità di calcolo/elaborazione, che consentono un calcolo parallelo efficiente. Inoltre, il relatore discute le sfide della creazione di operazioni atomiche per scopi di sincronizzazione e la necessità di ristrutturare i problemi per un'esecuzione efficiente sulle GPU.
4. Due documenti importanti sui processori eterogenei
4. Due documenti importanti sui processori eterogenei
Il video copre vari documenti relativi all'elaborazione eterogenea, comprese le tendenze nella progettazione dei processori e l'efficienza energetica, i vantaggi dell'utilizzo di hardware personalizzato e acceleratori specializzati, l'importanza di bilanciare core grandi e piccoli e le sfide del movimento dei dati e della comunicazione efficiente tra i core. I documenti discutono anche della necessità di comprendere la pianificazione e la partizione del carico di lavoro quando si lavora con processori eterogenei e l'uso di linguaggi di programmazione e framework come OpenCL, CUDA e OpenMP. Nel complesso, i documenti evidenziano i potenziali vantaggi dell'utilizzo di più core e acceleratori per massimizzare le prestazioni e l'efficienza energetica in ambienti informatici eterogenei.
5. Panoramica dell'hardware informatico
5. Panoramica dell'hardware informatico
Il video fornisce una panoramica dell'hardware informatico, trattando argomenti come le architetture dei processori, le considerazioni sulla progettazione, il multithreading, la memorizzazione nella cache, la gerarchia della memoria e la progettazione della logica di controllo. Spiega inoltre come un programma sia un insieme di istruzioni che un computer segue per eseguire un'attività e i diversi tipi di programmi, inclusi software e applicazioni di sistema. Il video sottolinea l'importanza dei componenti hardware di un computer, come la CPU e la memoria, che lavorano insieme per eseguire programmi ed eseguire attività.