Anonymous
Not logged in
Talk
Contributions
Create account
Log in
RS-485
Search
Editing
Coherent Accelerator Processor Interface
From RS-485
Namespaces
Page
Discussion
More
More
Page actions
Read
Edit
Edit source
History
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Processor expansion bus standard}} {{Infobox Computer Hardware Bus | name = Coherent Accelerator Processor Interface | image = | caption = | invent-date = {{Start date and age|2014}} | invent-name = {{hlist|[[IBM]]}} | key-persons = | replaces = | width = | speed = | numdev = | style = | hotplug = | external = | website = |}} '''Coherent Accelerator Processor Interface''' ('''CAPI'''), is a high-speed processor expansion bus standard for use in large [[data center]] computers, initially designed to be layered on top of [[PCI Express]], for directly connecting [[central processing unit]]s (CPUs) to external accelerators like [[graphics processing unit]]s (GPUs), [[Application-specific integrated circuit|ASICs]], [[Field-programmable gate array|FPGAs]] or fast storage.<ref name="pcworld">{{cite web|url=http://www.pcworld.idg.com.au/article/524768/ibm_new_power8_doubles_performance_watson_chip/|title=IBM's new Power8 doubles performance of Watson chip|author=Agam Shah|date=17 December 2014|work=PC World|accessdate=17 December 2014|archive-date=1 February 2018|archive-url=https://web.archive.org/web/20180201075402/https://www.pcworld.idg.com.au/article/524768/ibm_new_power8_doubles_performance_watson_chip/|url-status=dead}}</ref><ref name="wccftech">{{cite web|url=http://wccftech.com/ibm-power8-processor-architecture-detailed/|title=IBM Power8 Processor Detailed - Features 22nm Design With 12 Cores, 96 MB eDRAM L3 Cache and 4 GHz Clock Speed|work=WCCFtech|date=27 August 2013 |accessdate=17 December 2014}}</ref> It offers low latency, high speed, direct memory access connectivity between devices of different [[instruction set architecture]]s. == History == The performance scaling traditionally associated with [[Moore's Law]]—dating back to 1965—began to taper off around 2004, as both Intel's [[Pentium 4#Prescott|Prescott]] architecture and IBM's [[Cell (microprocessor)|Cell processor]] pushed toward a 4 GHz operating frequency. Here both projects ran into a thermal scaling wall, whereby heat extraction problems associated with further increases in operating frequency largely outweighed gains from shorter cycle times. Over the decade that followed, few commercial CPU products exceeded 4 GHz, with the majority of performance improvements now coming from incrementally improved microarchitectures, better systems integration, and higher compute density—this largely in the form of packing a larger numbers of independent cores onto the same die, often at the ''expense'' of peak operating frequency (Intel's 24-core Xeon E7-8890 from June 2016 has a base operating frequency of just 2.2 GHz, so as to operate within the constraints of a single-socket 165 W power consumption and cooling budget). Where large performance gains have been realized, it was often associated with increasingly specialized compute units, such as GPU units added to the processor die, or external GPU- or FPGA-based accelerators. In many applications, accelerators struggle with limitations of the interconnect's performance (bandwidth and latency) or with limitations due to the interconnect's architecture (such as lacking memory coherence). Especially in the datacenter, improving the interconnect became paramount in moving toward a heterogeneous architecture in which hardware becomes increasingly tailored to specific compute workloads. CAPI was developed to enable computers to more easily and efficiently attach specialized accelerators. Memory intensive and computation intensive works like [[matrix multiplication]]s for deep [[neural network]]s can be offloaded into CAPI-supported platforms.<ref>{{cite book | chapter = Accelerating HotSpots in Deep Neural Networks on a CAPI-Based FPGA | publisher = IEEE | author = Md Syadus Sefat, Semih Aslan, Jeffrey W Kellington, Apan Qasem | title = 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) | date=2019-10-03 | pages = 248–256 | doi = 10.1109/HPCC/SmartCity/DSS.2019.00048 | isbn = 978-1-7281-2058-4 | s2cid = 203656070 }}</ref> It was designed by IBM for use in its [[POWER8]] based systems which came to market in 2014. At the same time, IBM and several other companies founded the [[OpenPOWER Foundation]] to build an ecosystem around [[IBM Power microprocessors|Power]] based technologies, including CAPI. In October 2016 several OpenPOWER partners formed the ''OpenCAPI Consortium'' together with GPU and CPU designer [[AMD]] and systems designers [[Dell EMC]] and [[Hewlett Packard Enterprise]] to spread the technology beyond the scope of OpenPOWER and IBM.<ref>[https://web.archive.org/web/20161014220034/http://www.anandtech.com/show/10759/opencapi-unveiled-amd-ibm-google-more OpenCAPI Unveiled: AMD, IBM, Google, Xilinx, Micron and Mellanox Join Forces in the Heterogenous Computing Era]</ref> On August 1, 2022, OpenCAPI specifications and assets were transferred to the [[Compute Express Link]] (CXL) Consortium.<ref>[https://web.archive.org/web/20220802125039/https://www.computeexpresslink.org/_files/ugd/0c1418_d3474155dc6e4929aa2a5658a894d1a6.pdf CXL Consortium and OpenCAPI Consortium Sign Letter of Intent to Transfer OpenCAPI Specifications to CXL]</ref> == Implementation == === CAPI === CAPI is implemented as a functional unit inside the CPU, called the Coherent Accelerator Processor Proxy (CAPP) with a corresponding unit on the accelerator called the Power Service Layer (PSL). The CAPP and PSL units acts like a cache directory so the attached device and the CPU can share the same coherent memory space, and the accelerator becomes an Accelerator Function Unit (AFU), a peer to other functional units integrated in the CPU.<ref>[https://www-304.ibm.com/webapp/set2/sas/f/capi/CAPI_POWER8.pdf Coherent Accelerator Processor Interface (CAPI) for POWER8 Systems – White Paper]</ref><ref name="RAWkeynote">[http://raw.necst.it/2016/RAW-keynote-Hofstee-final.pdf Reconfigurable Accelerators for Big Data and Cloud – RAW 2016]</ref> Since the CPU and AFU share the same memory space, low latency and high speeds can be achieved since the CPU doesn't have to do memory translations and memory shuffling between the CPU's main memory and the accelerator's memory spaces. An application can make use of the accelerator without specific device drivers as everything is enabled by a general CAPI kernel extension in the host operating system. The CPU and PSL can read and write directly to each other's memories and registers, as demanded by the application. ==== CAPI ==== CAPI is layered on top of [[PCI Express#PCI Express 3.0|PCIe Gen 3]], using 16 PCIe lanes, and is an additional functionality for the PCIe slots on CAPI enabled systems. Usually there are designated CAPI enabled PCIe slots on such machines. Since there is only one CAPP per POWER8 processor the number of possible CAPI units are determined by the number of POWER8 processors, regardless of how many PCIe slots there are. In certain POWER8 systems, IBM makes use of dual chip modules, thus doubling the CAPI capacity per processor socket. Traditional transactions between a PCIe device and a CPU can take around 20,000 operations, whereas a CAPI attached device will only use around 500, significantly reducing latency, and effectively increasing bandwidth due to decreased operations overhead.<ref name="RAWkeynote" /> The total bandwidth of a CAPI port is determined by the underlying PCIe 3.0 x16 technology, peaking at ca 16 GB/s, bidirectional.<ref name="nextplatform-capi">[http://www.nextplatform.com/2016/10/17/opening-server-bus-coherent-acceleration/ Opening Up The Server Bus For Coherent Acceleration]</ref> ==== CAPI 2 ==== CAPI-2 is an incremental evolution of the technology introduced with IBM POWER9 processor.<ref name="nextplatform-capi"/> It runs on top of PCIe Gen 4 that effectively doubles the performance to 32 GB/s. It also introduces some new features like support for DMA and Atomics from the accelerator. === OpenCAPI === The technology behind OpenCAPI is governed by the ''OpenCAPI Consortium'', founded in October 2016 by [[AMD]], [[Google]], [[IBM]], [[Mellanox]] and [[Micron Technology|Micron]] together with partners [[Nvidia]], [[Hewlett Packard Enterprise]], [[Dell EMC]] and [[Xilinx]].<ref>[http://opencapi.org/2016/10/tech-leaders-unite-to-enable-new-cloud-datacenter-server-designs-for-big-data-machine-learning-analytics-and-other-emerging-workloads/ Tech Leaders Unite to Enable New Cloud Datacenter Server Designs for Big Data, Machine Learning, Analytics, and other Emerging Workloads]</ref> ==== OpenCAPI 3 ==== OpenCAPI, formerly ''New CAPI'' or ''CAPI 3.0'', is not layered on top of PCIe and will therefore not use PCIe slots. In IBM's CPU [[POWER9]] it will use the ''Bluelink 25G'' I/O facility that it shares with [[NVLink|NVLink 2.0]], peaking at 50 GB/s.<ref>[http://www.nextplatform.com/2016/08/24/big-blue-aims-sky-power9/ Big Blue Aims For The Sky With Power9]</ref> OpenCAPI doesn't need the PSL unit (required for CAPI 1 and 2) in the accelerator, as it's not layered on top of PCIe but uses its own transaction protocol.<ref>[https://www.hpcwire.com/2016/10/14/opencapi-takes-on-pcie/ OpenCAPI Takes on PCIe, Vows 10X Improvement]</ref> ==== OpenCAPI 4 ==== Planned for future chip after the General Availability of POWER9.<ref name="power9_webinar">{{cite web|last1=Stuecheli|first1=Jeff|title=Webinar POWER9|url=https://www.youtube.com/watch?v=eBvscMLVLEU#t=48m49s|publisher=AIX Virtual User Group|language=en|format=Video recording / slides|date=26 January 2017}} - [https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/61ad9cf2-c6a3-4d2c-b779-61ff0266d32a/page/1cb956e8-4160-4bea-a956-e51490c2b920/attachment/56cea2a9-a574-4fbb-8b2c-675432367250/media/POWER9-VUG.pdf Slides] <sub>(PDF)</sub> - [https://www.ibm.com/developerworks/community/wikis/home?lang=en#/wiki/Power%20Systems/page/AIX%20Virtual%20User%20Group%20-%20USA AIX VUG page] has links to slides and video</ref> ==== OMI ==== OpenCAPI Memory Interface (OMI) is a [[Serial communication#Serial versus parallel|serial attached]] [[Random-access memory|RAM]] technology based on OpenCAPI, providing [[Latency (engineering)|low latency]], [[Bandwidth (computing)|high bandwidth]] connection for main memory. OMI uses a controller chip on the memory modules that allows for technology agnostic approach to what is used on the modules, be it [[DDR4 SDRAM|DDR4]], [[DDR5 SDRAM|DDR5]], [[High Bandwidth Memory|HBM]] or storage class [[non-volatile random-access memory|non-volatile RAM]]. An OMI based CPU can therefore change RAM type by changing the memory modules. A serial connection uses less floorspace for the interface on the CPU die therefore potentially allowing more of them compared to using common DDR memory. OMI is implemented in IBM's [[Power10]] CPU, which has 8 OMI memory controllers on-chip, allowing for 4 TB RAM and 410 GB/s memory bandwidth per processor. These DDIMMs (Differential Dynamic Memory Module) includes an OMI controller and memory buffer, and can address individual memory chips for fault tolerance and redundancy purposes. [[Microchip Technology]] manufactures the OMI controller on the DDIMMs. Their SMC 1000 OpenCAPI memory is described as "the next progression in the market adopting serial attached memory."<ref>{{citation |author=Patrick Kennedy |url=https://www.servethehome.com/microchip-smc-1000-for-the-serial-attached-memory-future/ |date=August 5, 2019 |title=Microchip SMC 1000 For The Serial Attached Memory Future |publisher=Servethehome}}</ref> == See also == Legacy, abandoned * [[Intel QuickPath Interconnect|Intel QuickPath Interconnect (QPI)]] * [[RapidIO]] * [[HyperTransport]] Legacy, updated * [[PCI Express|PCI Express (PCIe)]] * [[NVLink]] * [[Infinity Fabric]] (evolution of HyperTransport) Contemporary * [[Compute Express Link|Compute Express Link (CXL)]] * [[Gen-Z (consortium)|Gen-Z]] * CCIX == References == {{reflist}} == External links == * [http://opencapi.org/ OpenCAPI Consortium] * [https://openmemoryinterface.org Open Memory Interface (OMI)] {{Computer-bus}} [[Category:Peripheral Component Interconnect]] [[Category:Serial buses]] [[Category:Motherboard expansion slot]]
Summary:
Please note that all contributions to RS-485 may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
RS-485:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Coherent Accelerator Processor Interface
(
edit
)
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Computer-bus
(
edit
)
Template:Computer bus
(
edit
)
Template:Hlist
(
edit
)
Template:Icon
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox Computer Hardware Bus
(
edit
)
Template:Infobox computer hardware bus
(
edit
)
Template:Main other
(
edit
)
Template:Navbox
(
edit
)
Template:Pagetype
(
edit
)
Template:Reflist
(
edit
)
Template:SDcat
(
edit
)
Template:SHORTDESC:Processor expansion bus standard
(
edit
)
Template:Short description
(
edit
)
Template:Short description/lowercasecheck
(
edit
)
Template:Start date and age
(
edit
)
Template:Template other
(
edit
)
Template:URL
(
edit
)
Template:Years or months ago
(
edit
)
Template:Yesno
(
edit
)
Module:Arguments
(
edit
)
Module:Check for unknown parameters
(
edit
)
Module:Citation/CS1
(
edit
)
Module:Citation/CS1/COinS
(
edit
)
Module:Citation/CS1/Configuration
(
edit
)
Module:Citation/CS1/Date validation
(
edit
)
Module:Citation/CS1/Identifiers
(
edit
)
Module:Citation/CS1/Utilities
(
edit
)
Module:Citation/CS1/Whitelist
(
edit
)
Module:Disambiguation/templates
(
edit
)
Module:Icon
(
edit
)
Module:Icon/data
(
edit
)
Module:Infobox
(
edit
)
Module:InfoboxImage
(
edit
)
Module:List
(
edit
)
Module:Navbar
(
edit
)
Module:Navbar/configuration
(
edit
)
Module:Navbox
(
edit
)
Module:Navbox/configuration
(
edit
)
Module:Pagetype
(
edit
)
Module:Pagetype/config
(
edit
)
Module:Pagetype/disambiguation
(
edit
)
Module:Pagetype/rfd
(
edit
)
Module:Pagetype/setindex
(
edit
)
Module:Pagetype/softredirect
(
edit
)
Module:SDcat
(
edit
)
Module:String
(
edit
)
Module:TableTools
(
edit
)
Module:URL
(
edit
)
Module:Wikitext Parsing
(
edit
)
Module:Yesno
(
edit
)
Navigation
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Wiki tools
Wiki tools
Special pages
Page tools
Page tools
User page tools
More
What links here
Related changes
Page information
Page logs