# Coherent Accelerator Processor Interface

La interfície de processador d'accelerador coherent (CAPI és un estàndard de bus d'expansió de processador d'alta velocitat per al seu ús en ordinadors de grans centres de dades, dissenyat inicialment per ser superposat a PCI Express, per connectar directament unitats de processament central (CPU) a acceleradors externs com ara unitats de processament gràfic (GPU), ASIC, FPGA o emmagatzematge ràpid. Ofereix connectivitat d'accés directe a memòria de baixa latència, alta velocitat i entre dispositius de diferents arquitectures de conjunt d'instruccions.

## Història

L'escala de rendiment associada tradicionalment a la Llei de Moore, que es remunta a 1965, va començar a reduir-se cap al 2004, ja que tant l'arquitectura Prescott d'Intel com el processador Cell d'IBM es van empènyer cap a una freqüència de funcionament de 4 GHz. Aquí tots dos projectes es van trobar amb una paret d'escala tèrmica, per la qual cosa els problemes d'extracció de calor associats a augments addicionals de la freqüència de funcionament van superar en gran manera els guanys dels temps de cicle més curts. Durant la dècada següent, pocs productes de CPU comercials van superar els 4 GHz, amb la majoria de millores de rendiment ara procedents de microarquitectures millorades de manera incremental, una millor integració de sistemes i una densitat de càlcul més alta, en gran part en forma d'empaquetar un nombre més gran de nuclis independents a la mateixa matriu, sovint a costa de la freqüència de funcionament màxima. (El Xeon E7-8890 de 24 nuclis d'Intel des de juny de 2016 té una freqüència operativa bàsica de només 2,2 GHz, per funcionar dins de les limitacions d'un sol sòcol de 165 W de consum d'energia i pressupost de refrigeració).
Quan s'han aconseguit grans guanys de rendiment, sovint s'associava amb unitats de càlcul cada cop més especialitzades, com ara unitats de GPU afegides a la matriu del processador o acceleradors externs basats en GPU o FPGA. En moltes aplicacions, els acceleradors lluiten amb les limitacions del rendiment de la interconnexió (amplada de banda i latència) o amb limitacions degudes a l'arquitectura de la interconnexió (com ara la manca de coherència de memòria). Especialment al centre de dades, la millora de la interconnexió es va convertir en primordial per avançar cap a una arquitectura heterogènia en la qual el maquinari s'adapta cada vegada més a càrregues de treball de càlcul específiques.
CAPI es va desenvolupar per permetre als ordinadors connectar acceleradors especialitzats de manera més fàcil i eficient. Els treballs intensius de memòria i de càlcul com ara multiplicacions de matrius per a xarxes neuronals profundes es poden descarregar a plataformes compatibles amb CAPI. Va ser dissenyat per IBM per utilitzar-lo en els seus sistemes basats en POWER8 que van sortir al mercat el 2014. Al mateix temps, IBM i diverses altres empreses van fundar la Fundació OpenPOWER per construir un ecosistema al voltant de tecnologies basades en l'energia, inclosa CAPI. L'octubre de 2016, diversos socis d'OpenPOWER van formar l'OpenCAPI Consortium juntament amb el dissenyador de GPU i CPU AMD i els dissenyadors de sistemes Dell EMC i Hewlett Packard Enterprise per difondre la tecnologia més enllà de l'abast d'OpenPOWER i IBM.
L'1 d'agost de 2022, les especificacions i els actius d'OpenCAPI es van transferir al Consorci Compute Express Link (CXL).

## Implementació
### CAPI

CAPI s'implementa com a unitat funcional dins de la CPU, anomenada Coherent Accelerator Processor Proxy (CAPP) amb una unitat corresponent a l'accelerador anomenada Power Service Layer (PSL). Les unitats CAPP i PSL actuen com un directori de memòria cau, de manera que el dispositiu connectat i la CPU poden compartir el mateix espai de memòria coherent i l'accelerador es converteix en una unitat de funció de l'accelerador (AFU), un parell d'altres unitats funcionals integrades a la CPU.
Atès que la CPU i l'AFU comparteixen el mateix espai de memòria, es poden aconseguir una latència baixa i altes velocitats, ja que la CPU no ha de fer traduccions de memòria i remenar la memòria entre la memòria principal de la CPU i els espais de memòria de l'accelerador. Una aplicació pot fer ús de l'accelerador sense controladors de dispositiu específics, ja que tot està habilitat per una extensió general del nucli CAPI al sistema operatiu amfitrió. La CPU i el PSL poden llegir i escriure directament a les memòries i registres de l'altre, tal com ho demana l'aplicació.

### OpenCAPI

La tecnologia que hi ha darrere d'OpenCAPI està governada per l' OpenCAPI Consortium, fundat l'octubre de 2016 per AMD, Google, IBM, Mellanox i Micron juntament amb els socis Nvidia, Hewlett Packard Enterprise, Dell EMC i Xilinx.

## Referències

* ↑ Agam Shah. «IBM's new Power8 doubles performance of Watson chip» (en anglès). PC World, 17-12-2014. Arxivat de l'original el 1 de febrer 2018. [Consulta: 17 desembre 2014].
* ↑ «IBM Power8 Processor Detailed - Features 22nm Design With 12 Cores, 96 MB eDRAM L3 Cache and 4 GHz Clock Speed» (en anglès). WCCFtech, 27-08-2013. [Consulta: 17 desembre 2014].
* ↑ «OpenCAPI (Open Coherent Accelerator Processor Interface) — The Linux Kernel documentation» (en anglès). https://www.kernel.org.+[Consulta: 30 agost 2023].
* ↑ Md Syadus Sefat, Semih Aslan, Jeffrey W Kellington, Apan Qasem. «Accelerating HotSpots in Deep Neural Networks on a CAPI-Based FPGA». A: 2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/Smart City/DSS) (en anglès). IEEE, 2019-10-03, p. 248–256. DOI 10.1109/HPCC/SmartCity/DSS.2019.00048. ISBN 978-1-7281-2058-4.