Sviluppi nell'uso degli FPGA per l'analisi del rischio finanziario
La ricerca esamina i miglioramenti degli FPGA per aumentare l'efficienza nell'analisi del rischio di mercato.
― 8 leggere min
Indice
- Comprendere gli FPGA e il loro Ruolo
- Il Benchmark SIMR
- Principali Sfide nell'Implementazione
- La Necessità di Efficienza
- L'Impostazione Sperimentale
- Procedere verso l'Implementazione delle AIE
- Accoppiare AIE e Logica Programmabile
- Risultati delle Prestazioni
- Conclusione e Direzioni Future
- Fonte originale
- Link di riferimento
L'analisi del rischio di mercato guarda a come i cambiamenti di prezzo possono influenzare gli investimenti finanziari di trader e investitori. È una parte fondamentale della finanza quantitativa, che usa matematica e dati per analizzare come si comportano i mercati. Questi tipi di analisi possono richiedere molte risorse informatiche. Da molti anni, la maggior parte delle persone ha eseguito questi modelli complessi usando CPU (Unità di Elaborazione Centrale) o GPU (Unità di Elaborazione Grafica). Tuttavia, alcune ricerche mostrano che gli FPGA (Field-Programmable Gate Arrays) possono velocizzare anche questo processo.
Gli FPGA sono chip speciali che possono essere programmati per compiti diversi dopo essere stati costruiti. Hanno alcuni vantaggi, come il basso tempo di ritardo, che può essere particolarmente utile nel trading ad alta frequenza. Eppure, gli sviluppatori hanno spesso trovato difficile usare gli FPGA per la finanza quantitativa. Questo è dovuto alla necessità di competenze specializzate nella programmazione hardware generalmente richieste per lavorare con gli FPGA.
Recenti avanzamenti sia nell'hardware che nel software che circonda gli FPGA li hanno resi più facili da usare per i compiti finanziari. Nuovi strumenti permettono ai programmatori di utilizzare linguaggi di programmazione più familiari, come C e C++, per lavorare con gli FPGA. Questo cambiamento ha rinnovato l'interesse verso l'uso degli FPGA per l'analisi in finanza.
Comprendere gli FPGA e il loro Ruolo
Gli FPGA sono unici perché possono essere riconfigurati per eseguire molti tipi diversi di compiti. Questa flessibilità consente di adattarli alle esigenze specifiche che sorgono nel mondo della finanza. Con l'uso di strumenti ad alto livello, gli sviluppatori possono ora programmare gli FPGA senza dover approfondire linguaggi specifici per l'hardware.
La generazione contemporanea di FPGA, come il Versal ACAP (Adaptive Compute Acceleration Platform), combina la Logica Programmabile tradizionale con le AI Engines (AIE). Queste AIE sono progettate per eseguire molte istruzioni contemporaneamente, rendendole adatte per Modelli Finanziari che richiedono calcoli rapidi su grandi set di dati. L'obiettivo di utilizzare gli FPGA in queste situazioni è migliorare la velocità e l'efficienza dell'elaborazione.
Il Benchmark SIMR
In finanza, i benchmark aiutano a valutare come diversi sistemi eseguono compiti di analisi finanziaria. Il benchmark SIMR (SIMulated Market Risk) è importante in questo contesto perché fornisce una misura standard per l'analisi del rischio di mercato. Nel documento, si mette molto in evidenza l'adattamento del benchmark SIMR per lavorare in modo efficiente con il Versal ACAP e le sue AI Engines.
Lo studio mira a vedere se l'uso delle AIE può migliorare le prestazioni rispetto ai metodi più vecchi che si basavano principalmente sulla Logica Programmabile (PL). I ricercatori cercano modi per combinare le capacità della PL e delle AIE per ottenere risultati migliori.
Principali Sfide nell'Implementazione
Quando si adatta il benchmark SIMR per lavorare con le AIE, sorgono diverse sfide. Un problema principale riguarda la gestione del flusso di dati. I modelli finanziari spesso richiedono calcoli ripetuti sugli stessi dati, il che può creare un collo di bottiglia nelle prestazioni. I ricercatori hanno dovuto trovare modi per far circolare i dati in modo efficace affinché i risultati potessero rientrare nei calcoli senza causare ritardi.
Come parte della loro analisi, hanno introdotto nuovi metodi per gestire le dipendenze dei dati. Ciò ha comportato passaggi accurati per garantire che quando una parte del calcolo dipendeva dal risultato di un'altra parte, non portasse all'arresto dell'intero processo.
In aggiunta, il team ha cercato di identificare e illustrare da dove originassero le inefficienze nel loro processo. Aggiungendo una colonna al loro tavolo di efficienza, miravano a chiarire come diverse scelte di design influenzassero le prestazioni complessive.
Hanno anche lavorato per chiarire come stavano dividendo i flussi di input per aumentare il flusso di dati verso le AIE. Questo era cruciale poiché migliorare la larghezza di banda poteva portare a prestazioni complessive migliori.
Inoltre, i ricercatori hanno visto il valore nel raccogliere dati su quanto bene i sistemi CPU e GPU performassero rispetto alle loro implementazioni FPGA. Questo avrebbe fornito un quadro più completo del panorama delle prestazioni.
La Necessità di Efficienza
L'efficienza è fondamentale in qualsiasi analisi finanziaria, specialmente quando la velocità è un fattore. Il documento sottolinea l'importanza di ottenere risultati rapidi senza sacrificare l'accuratezza. I ricercatori esplorano vari metodi per snellire il loro processo, migliorando le strategie di vettorizzazione e suddividendo gli algoritmi in parti più semplici e gestibili.
Confrontando diverse strategie di elaborazione, hanno notato come la versione "vettorizzata" del loro algoritmo funzionasse meglio della versione "naive". La versione naive consentiva solo istruzioni singole alla volta, mentre l'approccio vettorizzato permetteva di eseguire più calcoli in parallelo.
Questo ha portato a un miglior uso delle risorse disponibili e ha ridotto il tempo complessivo speso per ogni calcolo. Tuttavia, la sfida rimaneva nel bilanciare il carico di lavoro tra i loro sistemi per ottenere risultati ottimali senza incorrere in arresti o ritardi.
L'Impostazione Sperimentale
Per i loro esperimenti, i ricercatori hanno utilizzato una configurazione hardware specifica con il Versal ACAP. Questa configurazione comprendeva un mix di memoria ad alta velocità e unità di elaborazione adatte per eseguire modelli finanziari complessi. Hanno condotto i loro test con vari problemi di dimensioni, che andavano da piccoli a grandi set di dati.
Durante le loro valutazioni, i ricercatori hanno mediato i risultati su più esecuzioni per garantire coerenza e affidabilità. Questa metodologia ha aiutato a confermare che le loro misurazioni erano accurate e che eventuali differenze osservate nelle prestazioni erano statisticamente significative.
Procedere verso l'Implementazione delle AIE
Il team si è concentrato sul porting della fase VariancePathQE del benchmark SIMR sulle AIE. Questo segmento è stato scelto perché era noto per essere intensivo in termini di risorse e quindi poteva beneficiare significativamente delle capacità di elaborazione aggiuntive delle AIE.
I ricercatori hanno iniziato implementando una versione semplice del kernel, notando che inizialmente funzionava con operazioni scalari di base. Tuttavia, presto hanno riconosciuto la necessità di metodi di elaborazione più avanzati per sfruttare appieno il potenziale delle AIE.
Mentre studiavano le prestazioni del loro lavoro, hanno visto la necessità di suddividere il loro codice in kernel più piccoli che potessero funzionare separatamente. In questo modo, potevano distribuire i compiti in modo più efficace tra le AIE e massimizzare l'uso delle risorse di elaborazione.
Accoppiare AIE e Logica Programmabile
Una delle principali sfide nel loro lavoro era integrare le AIE con il codice PL esistente. I ricercatori dovevano garantire che i dati potessero fluire senza problemi tra i due sistemi, tenendo conto delle differenze nelle capacità di gestione dei dati e nelle velocità operative.
Hanno sviluppato un adattatore di loopback per gestire la natura ciclica di alcuni dei loro calcoli, permettendo ai risultati di un ciclo di calcolo di essere utilizzati nel successivo. Questa soluzione innovativa ha facilitato una migliore gestione dei dati e ha ridotto il rischio di arresti.
Il team ha anche lavorato per migliorare l'efficienza del trasferimento di dati tra le AIE e la PL. Hanno sperimentato vari modi di raggruppare i dati per accelerare la comunicazione, che era particolarmente vitale date le ciclicità di clock non corrispondenti tra i due sistemi.
Risultati delle Prestazioni
Alla fine, i risultati hanno rivelato che mentre l'uso delle AIE mostrava alcune potenzialità, erano ancora indietro rispetto alle implementazioni basate su PL in termini di prestazioni complessive. Sebbene i progetti AIE possano migliorare l'utilizzo, comportano una maggiore complessità e rischio di arresti, in particolare quando sono coinvolte più AIE.
I ricercatori hanno scoperto che le loro versioni del benchmark SIMR usando AIE erano spesso più lente dell'implementazione puramente PL. Questo ha evidenziato la necessità di ulteriori ottimizzazioni e aggiustamenti per sfruttare appieno i benefici dell'elaborazione delle AIE.
Inoltre, i test hanno indicato che le prestazioni dei singoli kernel potevano essere migliorate attraverso una migliore gestione delle dipendenze e delle iterazioni. Raffinando il loro approccio, speravano di ridurre il divario tra le prestazioni FPGA e i tradizionali sistemi CPU e GPU.
Conclusione e Direzioni Future
Lo studio ha fornito preziose intuizioni sull'uso degli FPGA, in particolare il Versal ACAP, nell'analisi del rischio di mercato finanziario. Nonostante le sfide affrontate, i ricercatori hanno dimostrato con successo come le AIE potessero essere adattate per accelerare alcuni processi coinvolti in questo campo complesso.
Mentre guardano al futuro, il team riconosce la necessità di ulteriori ricerche. Hanno evidenziato aree chiave per ulteriori esplorazioni, come l'ottimizzazione dei metodi di gestione dei dati e il miglioramento della comunicazione inter-AIE per ridurre gli arresti.
L'obiettivo finale è creare un modello di elaborazione più efficiente che possa gestire le rigorose richieste della finanza quantitativa mantenendo accuratezza e velocità. I risultati di questo lavoro contribuiscono a una comprensione più ampia di come piattaforme di calcolo avanzate come gli FPGA possano essere utilizzate nella finanza, aprendo la strada a future innovazioni e miglioramenti nel campo.
Titolo: Evaluating Versal AI Engines for option price discovery in market risk analysis
Estratto: Whilst Field-Programmable Gate Arrays (FPGAs) have been popular in accelerating high-frequency financial workload for many years, their application in quantitative finance, the utilisation of mathematical models to analyse financial markets and securities, is less mature. Nevertheless, recent work has demonstrated the benefits that FPGAs can deliver to quantitative workloads, and in this paper, we study whether the Versal ACAP and its AI Engines (AIEs) can also deliver improved performance. We focus specifically on the industry standard Strategic Technology Analysis Center's (STAC) derivatives risk analysis benchmark STAC-A2. Porting a purely FPGA-based accelerator STAC-A2 inspired market risk (SIMR) benchmark to the Versal ACAP device by combining Programmable Logic (PL) and AIEs, we explore the development approach and techniques, before comparing performance across PL and AIEs. Ultimately, we found that our AIE approach is slower than a highly optimised existing PL-only version due to limits on both the AIE and PL that we explore and describe.
Autori: Mark Klaisoongnoen, Nick Brown, Tim Dykes, Jessica R. Jones, Utz-Uwe Haus
Ultimo aggiornamento: 2024-02-19 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2402.12111
Fonte PDF: https://arxiv.org/pdf/2402.12111
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- https://www.acm.org/publications/taps/whitelist-of-latex-packages
- https://doi.org/10.1145/3626202.3637578
- https://dl.acm.org/ccs.cfm
- https://docs.xilinx.com/r/2022.1-English/ug1079-ai-engine-kernel-coding/Window-vs.-Stream-in-Data-Communication
- https://docs.xilinx.com/r/en-US/ug1076-ai-engine-environment/Simulation-Input-and-Output-Data-Streams
- https://support.xilinx.com/s/question/0D54U00006H8UdySAF/no-data-to-generate-kernel-data-transfers-or-execution-data-see-profiling-the-application?language=en_US
- https://docs.xilinx.com/r/en-US/ug1079-ai-engine-kernel-coding/Linear-and-Circular-Addressing-of-Buffer-Ports
- https://www.cirrus.ac.uk
- https://xilinx.github.io/Vitis-Tutorials/2021-1/build/html/docs/AI_Engine_Development/Design_Tutorials/07-firFilter_AIEvsHLS/README.html
- https://docs.xilinx.com/r/en-US/ug1504-acap-system-solution-planning-methodology/AI-Engine-Throughput-and-Latency
- https://docs.xilinx.com/r/en-US/ug1076-ai-engine-environment/Event-Profile-APIs-for-Graph-Inputs-and-Outputs