
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
36. Eseguire le istruzioni su CPU Datapath
36. Eseguire le istruzioni su CPU Datapath
Il video spiega come vengono eseguiti i calcoli su un percorso dati della CPU utilizzando un esempio di esecuzione di operazioni di accumulo. Il percorso dati include unità di caricamento e archiviazione per caricare e archiviare dati in memoria utilizzando indirizzi e unità funzionali come ALU per eseguire operazioni. Il video illustra il processo passo dopo passo, incluso il caricamento dei dati dalla memoria, l'esecuzione delle operazioni e la memorizzazione dei risultati nella memoria. Il relatore spiega anche come FPGA può essere utilizzato per implementare la stessa funzione, sfruttando al massimo le risorse disponibili nell'hardware.
37. Percorso dati personalizzato su FPGA
37. Percorso dati personalizzato su FPGA
Il video spiega l'utilizzo di un FPGA per implementare la funzione del kernel per migliorare le prestazioni srotolando l'hardware della CPU e personalizzando il percorso dati sull'FPGA. Rimuovendo le unità inutilizzate, caricando costanti e cavi e riprogrammando alcune operazioni, le operazioni di caricamento possono essere eseguite contemporaneamente per aumentare le prestazioni. La progettazione di datapath personalizzati può migliorare il throughput, ridurre la latenza e il consumo energetico selezionando le operazioni e i dati necessari per una particolare funzione. Il video mostra un esempio di aggiunta basata sulla domanda su due vettori, con il risultato archiviato nella memoria utilizzando i registri tra le fasi per consentire una pipeline efficiente e l'avvio di otto elementi di lavoro per aggiunte consecutive.
38. OpenCL per FPGA e Data Parallel Kernel
38. OpenCL per FPGA e Data Parallel Kernel
Il video spiega come OpenCL consente agli ingegneri FPGA di utilizzare le risorse di ingegneria del software per espandere il numero di sviluppatori di applicazioni FPGA sfruttando le risorse di elaborazione parallela sugli FPGA. Il modello di programmazione di OpenCL consente la specifica del parallelismo utilizzando funzioni parallele di dati chiamate kernel e ogni kernel si basa su identificatori specificati da "get global ID" per eseguire calcoli paralleli su segmenti di dati indipendenti. Viene introdotto il concetto di thread e gruppi di lavoro, in cui i thread accedono a parti diverse del set di dati, partizionato in gruppi di lavoro, con solo i thread all'interno dello stesso gruppo di lavoro in grado di condividere la memoria locale. Con questo modello di programmazione, OpenCL consente un'efficiente elaborazione parallela dei dati.
39. Programmazione lato host OpenCL: contesto, code, oggetti di memoria, ecc.
39. Programmazione lato host OpenCL: contesto, code, oggetti di memoria, ecc.
Questa esercitazione video esplora vari concetti di programmazione lato host in OpenCL, con particolare attenzione al contesto, alle code e agli oggetti di memoria. Copre le due nuove API in OpenCL, clCreateKernelsInProgram e clSetKernelArg, che vengono utilizzate per creare oggetti del kernel e passare argomenti alle funzioni del kernel. L'esercitazione illustra anche l'uso dell'API clCreateImage per creare oggetti immagine e il modo in cui i pixel dell'immagine vengono archiviati in memoria utilizzando l'ordine e il tipo di canale. Spiega come OpenCL gestisce le immagini 2D e 3D, come gli sviluppatori possono raccogliere informazioni sugli oggetti di memoria utilizzando API come clGetMemoryObjectInfo e come eseguire operazioni sugli oggetti di memoria come leggere e scrivere buffer rec, mappare oggetti di memoria e copiare dati tra oggetti di memoria.
40. Flusso di progettazione HDL per FPGA
40. Flusso di progettazione HDL per FPGA
Questo video spiega il processo di sviluppo di Field Programmable Gate Array (FPGA) utilizzando il software di progettazione Quartus.
Vengono spiegati la metodologia di progettazione e gli strumenti software per lo sviluppo di FPGA. Il tipico flusso di progettazione logica programmabile inizia con una specifica di progettazione, passa alla codifica RTL e quindi alla simulazione funzionale RTL, che è quindi seguita dalla sintesi per tradurre il progetto in primitive specifiche del dispositivo. Gli ingegneri quindi mappano queste primitive in posizioni specifiche all'interno di un particolare FPGA e verificano le specifiche delle prestazioni attraverso l'analisi dei tempi. Infine, il progetto viene caricato in una scheda FPGA e gli strumenti di debug possono essere utilizzati per testarlo sull'hardware. Per gli FPGA Intel, il software di progettazione Quartus viene utilizzato per eseguire il flusso di progettazione, iniziando con una descrizione del sistema e passando alla sintesi logica, posizione e percorso, analisi dei tempi e della potenza e programmazione del progetto negli FPGA effettivi.
41. Tipi di dati OpenCL e memoria del dispositivo
41. Tipi di dati OpenCL e memoria del dispositivo
Il video illustra i tipi di dati OpenCL e la memoria del dispositivo. Copre i tipi booleani, interi e in virgola mobile e spiega i tipi di dati specifici utilizzati per operare su indirizzi di memoria come int-ptr, uint-ptr e ptrdiff-t. Spiega inoltre i tipi di dati vettoriali, che sono matrici contenenti più elementi dello stesso tipo che consentono di applicare gli operatori a ogni elemento contemporaneamente e come utilizzarli. Il video fornisce vari esempi su come inizializzare e accedere agli elementi in un vettore, incluso l'uso di lettere e indici numerici, alto-basso e pari-dispari. Spiega anche l'allineamento della memoria e come usare set kernel argument e private kernel arguments.
42. Operazioni relazionali vettoriali OpenCL
42. Operazioni relazionali vettoriali OpenCL
Il video discute la programmazione del kernel OpenCL, i suoi operatori e le funzioni integrate. L'attenzione si concentra sugli operatori relazionali e su come funzionano con valori scalari e vettoriali. Viene presentata una funzione del kernel di esempio, "op test", che esegue un'operazione AND basata sugli elementi tra una costante e un vettore privato. Il video spiega come implementare un vettore con operazioni relazionali in OpenCL confrontando elementi vettoriali specifici con uno scalare utilizzando operazioni logiche. Il vettore risultante può essere utilizzato in un ciclo while per creare un vettore di output finale che viene assegnato all'oggetto memoria di output.
43. Funzioni integrate di OpenCL: vloadn, select
43. Funzioni integrate di OpenCL: vloadn, select
Il video illustra due funzioni integrate chiave di OpenCL: vloadn e select. Vloadn consente di inizializzare batch con valori da un array scalare e accetta due argomenti: offset e un puntatore all'array scalare. Seleziona, d'altra parte, ti consente di selezionare determinati elementi da due batch e usarli per creare un nuovo vettore. Può contenere valori interi con segno o senza segno e conta solo il bit più significativo negli elementi della maschera. Il tutorial dimostra come queste funzioni funzionano nella pratica.
44. Introduzione a DPC++
44. Introduzione a DPC++
Questo video introduce DPC++, un linguaggio di alto livello per la programmazione parallela dei dati che scarica il calcolo complesso su acceleratori come FPGA e GPU e fa parte del framework OneAPI. DPC++ mira ad accelerare i carichi di lavoro paralleli di dati utilizzando il C++ moderno e l'ottimizzazione delle prestazioni orientata all'architettura. Il docente fornisce un semplice esempio di DPC++ che dimostra come dichiarare le variabili di gestione dei dati ed eseguire una funzione del kernel su un dispositivo utilizzando un comando e una funzione di accesso. Il video spiega anche come la funzione lambda può prendere argomenti e riferimenti dalle variabili dichiarate al di fuori di essa.
45. Come pensare in parallelo?
45. Come pensare in parallelo?
Il video insegna la programmazione parallela usando la moltiplicazione di matrici come esempio. Evidenzia il parallelismo in questo calcolo, in cui più righe e colonne possono essere calcolate in modo indipendente. L'implementazione del calcolo di un singolo elemento nella matrice C viene mostrata utilizzando una funzione del kernel che consente il calcolo parallelo. L'uso di funzioni di accesso, intervallo e funzioni parallele del kernel è spiegato in dettaglio. Vengono discussi i passaggi coinvolti nel passaggio del valore dell'intervallo nella funzione del kernel. Viene anche dimostrata una demo della moltiplicazione di matrici utilizzando Intel FPGA dev cloud.