Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CAPI SNAP overview

Avatar for Yutaka Yutaka
February 21, 2017

CAPI SNAP overview

copyright
Alexandre Castellane, [email protected]
Bruno Mesnet, [email protected]
PowerTM Systems CAPI Hardware acceleration
Montpellier Cognitive Systems lab

Avatar for Yutaka

Yutaka

February 21, 2017

More Decks by Yutaka

Other Decks in Technology

Transcript

  1. June 1st, 2016 February 21th, 2017 SNAP Framework built on

    Power™ CAPI technology Alexandre Castellane, [email protected] Bruno Mesnet, [email protected] PowerTM Systems CAPI Hardware acceleration Montpellier Cognitive Systems lab CAPI SNAP Discover CAPI SNAP framework, the tool for Software C/C++ programmers to accelerate their application on FPGA
  2. 2 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Why accelerators ? CAPI CAPI2.0 – OpenCAPI SNAP framework Use Cases Sponge : a good story
  3. 4 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Data Centers buy on price-performance
  4. 5 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Moore’s Law: Price Performance Exponential Data Growth Compute Intensive Algorithms New Data Structures Compute ▪ AI, Machine / Deep Learning ▪ Video Processing ▪ Database / Big Data Analytics Storage ▪ Scale-out Storage ▪ Petabytes of new data ▪ Intelligent / Compute SSDs Networking ▪ SDN/NFV Acceleration ▪ Network Security ▪ Low-latency Networking ▪ OVS offload The Need for Acceleration in Data Centers 2008 2010 2102 2014 2016 2018 2020
  5. 6 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation GPU FPGA Thousands of tiny CPU using high parallelization  compute intensive application Logic + IOs are customized exactly for the application's needs.  Very low and predictable latency applications 2 options Accelerators families
  6. 7 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation The CAPI Advantage CAPI 1.0 CAPI 2.0 OpenCAPI 8 GBPS 16 GBPS 25 GBPS • Security • Virtualization • Performance • Growth with roadmap • Coherency and addressing
  7. 9 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation CAPI Coherent Accelerator Processor Interface
  8. 10 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Chip Interconnect Core Core Core L2 L2 L2 L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank L2 L2 L2 Core Core Core Chip Interconnect Core Core Core L2 L2 L2 L2 L2 L2 L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank Core Core Core Memory Bus Memory Bus SMP Interconnect SMP Interconnect SMP SMP CAPI PCIe SMP CAPI PCIe SMP CAPP CAPP PSL PCIe PCIe AFU C code OS PCIe - System memory accessed directly by FPGA  Coherent data - Application in CPU + FPGA code much simpler and quicker  Accelerator - Specific logic in Power8 and FPGA + standard PCIe Gen3  Processor Interface  application becomes QUICKER, SIMPLER, SAFER IBM Power8 processor and its Coherent Accelerator Processor Interface
  9. 11 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Memory Subsystem Virt Addr CPU Core CPU Core CPU Core CPU Core CPU Core CPU Core App External Device I/F Variables Input Data DD Device Driver Storage Area Variables Input Data Variables Input Data Output Data Output Data • An application calls a device driver to utilize an Accelerator or any device outside the chip • The device driver performed a memory mapping operation. 3 versions of the data (not coherent). 1000s of instructions in the device driver. An application without CAPI
  10. 12 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Memory Subsystem Virt Addr POWER8 Core POWER8 Core POWER8 Core POWER8 Core POWER8 Core POWER8 Core App FPGA PCIE PSL Variables Input Data Output Data 1 coherent version of the data. No device driver call/instructions. • CPU unloaded since no device driver and accelerator doing the application work • The FPGA shares memory with the cores An application with CAPI
  11. 13 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Effect of CAPI hardware vs. PCI-E Device Driver Typical I/O Model Flow: Flow with a CAPI Model: Shared Mem. Notify Accelerator Acceleration Shared Memory Completion DD Call Copy or Pin Source Data MMIO Notify Accelerator Acceleration Poll / Interrupt Completion Copy or Unpin Result Data Ret. From DD Completion Application Dependent, but Equal to below Application Dependent, but Equal to above 300 Instructions 10,000 Instructions 3,000 Instructions 1,000 Instructions 1,000 Instructions 7.9µs 4.9µs Total ~13µs for data prep 400 Instructions 100 Instructions 0.3µs 0.06µs Total 0.36µs
  12. 14 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Cores IBM PSL Cache FPGA PCIe PCIe Mem CAPP Power8 Write access (streaming mode : write_na) • Write Bandwidth when data is pushed to system memory : 3.88 GB/s • Average Write Latency from PSL request to response : 838ns. Read access (streaming mode : read_cl_na ) • Read Bandwidth when data resides in system memory : 3.42 GB/s • Average Read Latency from PSL request to response : 864ns . Read / Write access in cache mode  Latency for Read or Writes that hit in the PSL Cache: 120ns. AFU System mem Performances measured
  13. 15 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Power 9 CAPI2.0 - OpenCAPI
  14. 17 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Feature CAPI 1.0 CAPI 2.0 OpenCAPI 3.0 OpenCAPI 4.0 Processor Generation POWER8 POWER9 POWER9 Future CAPI Logic Placement FPGA/ASIC FPGA/ASIC NA DL/TL on Host DLx/TLx on endpoint FPGA/ASIC NA DL/TL on Host DLx/TLx on endpoint FPGA/ASIC Interface Lanes per Instance Lane bit rate PCIe Gen3 x8/x16 8 Gb/s PCIe Gen4 2 x (Dual x8) 16 Gb/s Direct 25G x8 25 Gb/s Direct 25G+ x4, x8, x16, x32 25+ Gb/s Address Translation on CPU No Yes Yes Yes Native DMA from Endpoint Accelerator No Yes Yes Yes Home Agent Memory on OpenCAPI Endpoint with Load/Store Access No No Yes Yes Native Atomic Ops to Host Processor Memory from Accelerator No Yes Yes Yes Accelerator -> HW Thread Wake-up No Yes Yes Yes Low-latency small message push 128B Writes to Accelerator MMIO 4/8B only MMIO 4/8B only MMIO 4/8B only Yes Host Memory Caching Function on Accelerator Real Address Cache in PSL Real Address Cache in PSL No Effective Address Cache in Accelerator Remove PCIe layers to reduce latency significantly Comparison of IBM CAPI Implementations
  15. 18 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation FPGA POWER8 Core Recall CAPI technology connections Proprietary hardware and designs to enable coherent acceleration Operating system enablement • little endian linux • kernel driver (cxl) • user library (libcxl) Customer application and accelerator POWER8 Processor OS App Memory (Coherent) AFU PSL PCIe CAPP cxl libcxl ▪ PSLSE models the red outlined area ▪ Re-implements libcxl api calls ▪ Models memory access ▪ Provides hardware ports to afu ▪ Enables co-simulation of AFU and App ▪ Publicly available on github
  16. 19 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation FPGA POWER9 Core OpenCAPI technology connections Proprietary hardware and reference designs to enable coherent acceleration Operating system enablement • little endian linux • reference kernel driver (ocxl) • reference user library (libocxl) Customer application and accelerator POWER9 Processor OS App Memory (Coherent) AFU TLx DLx 25G phy 25G phy DL TL NPU (w/ CAPP fcn) PSL ocxl libocxl ▪ OCSE models the red outlined area ▪ OCSE enable AFU and App co-simulation IF reference libocxl and reference TLx/DLx are used. ▪ OCSE dependencies/assumptions – Fixed reference TLx/AFU interface – Fixed reference libocxl user API ▪ Will be available to consortium members
  17. 20 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation A Truly Heterogeneous Architecture Built on OpenCAPI
  18. 21 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation What's OpenPOWER all about? OpenPOWER is an open development community using the POWER Architecture Accelerated innovation through collaboration of partners Vibrant ecosystem through open development Driving industry performance leadership
  19. 22 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation 300+ members, 27 countries, 80+ technologies revealed, 12+ workgroups,….
  20. 24 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation SNAP Framework Storage Networking Analytics Processing
  21. 25 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation * Compared to running the same C/C++ in software PCI-E FPGA CAPI FPGA CAPI SNAP Target Customer Computer Engineers Computer Engineers Programmers Development time 3-6 Months 3-6 Months Days Software Integration PCI-E Device Driver LibCXL Simple API Source Code VHDL, Verilog, OpenCL VHDL, Verilog, OpenCL C/C++, Go Coherency, Security None POWER + PSL POWER + PSL
  22. 26 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation The CAPI – SNAP concept Action X Action Y Action Z CAPI FPGA SNAP Vivado HLS CAPI FPGA becomes a peer of the CPU  Action directly accesses host memory SNAP Manage server threads and actions Manage access to IOs (memory, network)  Action easily accesses resources FPGA Gives on-demand compute capabilities Gives direct IOs access (storage, network)  Action directly accesses external resources Vivado HLS Compile Action written in C/C++ code Optimize code to get performance  Action code can be ported efficiently + + + = Best way to offload/accelerate a C/ C++ code with : - Minimum change in code - Quick porting - Better performance than CPU
  23. 27 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Process A Context SNAP library Job Manager DRAM on-card Network (TBD) NVMe AXI Host DMA Control MMIO AXI CAPI SNAP Components Job Queue Job Queue SNAP : CAPI Framework Application PSL/AXI bridge (simplified) Accelerated Action CAPI SNAP Enabled Card libcxl cxl HDK: CAPI PSL CAPI Base CAPI Components Key: Action 3 “Go” Action 1 “VHDL” Action 2 “C/C++” User host code and accelerator IP
  24. 28 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation SNAP Enabled Card Details Two 1TB NVMe sticks (1.92TB effective) Latency to FPGA: ~0.8us Bandwidth to FPGA: Read 1.8GB/s 4GB DDR4 (on back of card) Latency to FPGA: 184ns Read / 105ns write 3.5MB Block Ram on FPGA Choose this card for: 2TB of on-card Flash Nallatech 250S Alpha-Data ADM-PCIE-KU3 FPGA to Host Memory Access Latency to/from FPGA: 0.8us Bandwidth to FPGA: ~3.8GB/s reads and writes (CAPI limit) 8GB DDR3 Latency to FPGA: 230ns Two 40Gb QSFP+ Ports Future Use: Currently no Bridge to SNAP Choose this card for: External IO, Offload and DRAM
  25. 29 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Let’s understand SNAP with a “hello world” example Application on Server snap_helloworld –i /tmp/t1 -o /tmp/t2 (-mode=cpu) HELLO WORLD. I love this new experience with SNAP “Lower case” processing  “software” action hello world. I love this new experience with snap “Upper case” processing  “hardware” action snap_helloworld –i /tmp/t1 –o /tmp/t2 -mode=fpga HELLO WORLD. I LOVE THIS NEW EXPERIENCE WITH SNAP  Change C code to implement: - A switch to execute action on CPU or on FPGA - A way to access new resources
  26. 30 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation SNAP 3 steps flow Application SNAP_CONFIG=CPU snap_helloworld –i /tmp/t1 -o /tmp/t2 “Lower case” processing  “software” action SNAP_CONFIG=FPGA snap_helloworld –i /tmp/t1 –o /tmp/t2 FPGA Card emulation Action 1 2 3 “Upper case” processing  “hardware” action x86 server Power8 server “Upper case” processing  “hardware” action x86 server Application Action Application Action SNAP_CONFIG=FPGA snap_helloworld –i /tmp/t1 –o /tmp/t2 ISOLATION EXECUTION SIMULATION
  27. 32 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation CAPI SNAP Paradigms Examples: Encryption, Compression, Erasure Code prior to network or storage Processor Chip Action Data Egress Method SNAP Examples: Machine Learning, Genomic algorithms, Erasure Code offload, Deep Computation Off-load Method Processor Chip Action Data SNAP Example: Basic offload Examples: Database searches, joins, intersections, merges Ingress Method Processor Chip Action Data SNAP Examples: Video Analytics, Deep Packet Inspection (DPI), Video Encoding (H.265) etc Needle-in-a-haystack Engine Processor Chip Action SNAP “Funnel” Engine Data
  28. 33 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Comparison of Ingest + Search 48GB/s 200GB/s 1TB of data to search POWER + Accelerator POWER8 SW only Chip Interconne ct Core Core Core L2 L2 L2 L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank L2 L2 L2 Core Core Core Chip Interconnec t Core Core Core L2 L2 L2 L2 L2 L2 L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank L3 Bank Core Core Core Memory Bus Memory Bus SMP Interconnect SMP Interconnect SMP SMP CAP I PCI e SMP CAP I PCI e SMP
  29. 34 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Funnel Engine: Array Intersection benchmark SW CPU procedure: • Copy Source arrays from DDR to Host • SW intersection FPGA procedure: • HW intersection • Copy Result array from DDR to Host Given two unsorted arrays, write a function that returns the third array which is the intersection of the two arrays. This means that the resulting array should only contain elements that appear in both input arrays. Order of elements in the resulting array is irrelevant. KBytes Host total Host executionHost Access FPGA Total FPGA execution FPGA Result store FPGA speedup 16 30686 30,621 65 265 228 37 134 32 33668 33,562 106 467 422 45 80 64 34165 33,978 187 925 819 106 42 128 28706 28,354 352 1760 1,627 133 17 256 32467 31,775 692 3500 3,245 255 10 Examples: Database searches, joins, intersections, merges Needle-in-a-haystack Engine Processor Chip Intersection SNAP “Funnel” Engine Data T1 T2 T3
  30. 35 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Sponge / SHA3 A good story
  31. 36 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Sponge benchmark on SNAP Purpose of this benchmark is to : 1. validate how it is quick and simple to port a “computation only” C coded program into our SNAP framework 2. measure computation performance of this code 3. compare these performances with CPU This porting was done by 1 software designer and 1 hardware designer with very basic Xilinx Vivado HLS tool knowledge. 5 steps : 1. Understand the environment 2. Port the code into Vivado HLS 3. Port the code into SNAP 4. Optimize the code 5. Performance results vs CPU
  32. 37 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation SNAP : CAPI Framework Application Process C Slave Context libcxl cxl SNAP library Job Queue Process B Slave Context libcxl cxl SNAP library Job Queue Process A Slave Context libcxl cxl SNAP library Job Queue DRAM on-card Network (TBD) NVMe Action 3 “Go” Action 1 “VHDL” Action 2 “C/C++” AXI HDK: CAPI PSL Host DMA Control MMIO Job Manager Job Queue CAPI AXI PSL/AXI bridge (simplified) Accelerated Action ADM-PCIE-KU3 XCKU060
  33. 38 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation The SHA3 test_speed program structure:  2 parameters : NB_TEST_RUNS, NB_ROUNDS main() { for(run_number = 0; run_number < NB_TEST_RUNS; run_number++) { if(nb_elmts > (run_number % freq)) checksum ^= test_speed(run_number); } } uint64_t test_speed (const uint64_t run_number) { for( i=0; i < 25; i++ ) st[i] = i + run_number; bg = clock; do { for( i=0; I < NB_ROUNDS; i++ ) sha3_keccakf(st, st); } while ((clock –bg) < 3 * CLOCKS_PER_SEC); for( i=0; i < 25; i++ ) x += st[i]; return x; } NB_ROUNDS=100,000 void sha3_keccakf(uint64_t st_in[25], uint64_t st_out[25]) { for (round = 0; round < KECCAKF_ROUNDS; round++) processing Theta + Rho Pi + Chi } Math function Recursive loops NB_TEST_RUNS = 65,536 Parallel loops KECCAKF_ROUNDS = 24  24 calls calling the algorithm process Code used was downloaded (with author’s authorization) from: https://github.com/mjosaarinen/tiny_sha3 As measuring time with HLS is not obvious, the “time” loop was modified so that parallelism could be done. The goal stays to execute the maximum times the keccakf algorithm per second.
  34. 39 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation void sha3_keccakf(uint64_t st_in[25], uint64_t st_out[25], { int i, j, round; uint64_t t, bc[5]; uint64_t st[25]; for (i = 0; i < 25; i++) #pragma HLS UNROLL st[i] = st_in[i]; for (r = 0; r < KECCAKF_ROUNDS; r++) { #pragma HLS PIPELINE // Theta for (i = 0; i < 5; i++) bc[i] = st[i] ^ st[i + 5] ^ st[i + 10] ^ st[i + 15] ^ st[i + 20]; for (i = 0; i < 5; i++) { t = bc[(i + 4) % 5] ^ ROTL64(bc[(i + 1) % 5], 1); for (j = 0; j < 25; j += 5) st[j + i] ^= t; } // Rho Pi t = st[1]; for (i = 0; i < 24; i++) { j = keccakf_piln[i]; bc[0] = st[j]; st[j] = ROTL64(t, keccakf_rotc[i]); t = bc[0]; } // Chi for (j = 0; j < 25; j += 5) { for (i = 0; i < 5; i++) bc[i] = st[j + i]; for (i = 0; i < 5; i++) st[j + i] ^= (~bc[(i + 1) % 5]) & bc[(i + 2) % 5]; } // Iota st[0] ^= keccakf_rndc[r]; } for (i = 0; i < 25; i++) #pragma HLS UNROLL st_out[i] = st[i]; } Keccakf function changes Changes done to port code in Cuda …/… // Rho Pi st0 = st00; st10 = ROTL643(st01, 1, 63); st7 = ROTL643(st010, 3, 61); st11 = ROTL643(st07, 6, 58); st17 = ROTL643(st011, 10, 54); st18 = ROTL643(st017, 15, 49); st3 = ROTL643(st018, 21, 43); st5 = ROTL643(st03, 28, 36); st16 = ROTL643(st05, 36, 28); st8 = ROTL643(st016, 45,19); st21 = ROTL643(st08, 55, 9); st24 = ROTL643(st021, 2, 62); st4 = ROTL643(st024, 14, 50); st15 = ROTL643(st04, 27, 37); st23 = ROTL643(st015, 41, 23); st19 = ROTL643(st023, 56, 8); st13 = ROTL643(st019, 8, 56); st12 = ROTL643(st013, 25, 39); st2 = ROTL643(st012, 43, 21); st20 = ROTL643(st02, 62, 2); st14 = ROTL643(st020, 18, 46); st22 = ROTL643(st014, 39, 25); st9 = ROTL643(st022, 61, 3); st6 = ROTL643(st09, 20, 44); st1 = ROTL643(st06, 44, 20); …/… Changes done for HLS: - splitting in and out ports - adding HLS PIPELINE instruction Day0
  35. 40 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Sha3_keccakf function 1st synthesis – with no code change Reference (function synthesized alone) 2nd synthesis – adding #pragma HLS PIPELINE in main loop  Splitting st argument into st_in and st_out LUT x6.6 BRAM / 3 INFO: [SCHED 204-61] Pipelining loop 'keccakfrounds'. INFO: [SCHED 204-61] Pipelining result: Target II: 1, Final II: 1, Depth: 2. Day+2 Latency / 219
  36. 41 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation SNAP code architecture SNAP MMIO CAPI PSL PCIe Power 8 Sponge application Job Manager « Action » RTL code generated by HLS sha3.cpp hls_checksum.cpp AXI DMA DRAM on-card Network (TBD) NVMe AXI Action registers checksum_type queue_workitem 56 bytes 16bytes act/flags retc priv_data seq nb_elmts checksum_in checksum_out freq nb_test_run nb_rounds sponge application call: rc = do_checksum(card_no, timeout, threads, 0, 0, 0, 0, CHECKSUM_SPONGE, t->nb_elmts, t->freq, &checksum, &usec, &timer_ticks, &nb_test_runs, &nb_round, fp); Day+4
  37. 42 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation SHA3 test_speed program in SNAP with no optimization Main function (65536 iterations):  process_action function duration =76.57 hours Test_speed function (100,000 iterations):  Test_speed function duration = 1,051,500,126x4ns=4.2s Keccakf function (24 iterations): iteration time = 438x4ns = 1.75µs  Keccakf function duration = 10,513x4ns = 42µs Reference full design Analyze 3 main numbers: clock frequency, logic LUT, iteration latency
  38. 43 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Main function (65536 iterations) / Factor 32:  process_action function duration = 43 seconds Test_speed function (100,000 iterations):  Test_speed function duration = 5,300,063x4ns=21.2ms Keccakf function (24 iterations): iteration time = 2x4ns = 8ns  Keccakf function duration = 51x4ns = 0.216µs SHA3 test_speed program in SNAP after optimizations LUT x 25 6410 x faster Day+10 Latency / 219
  39. 44 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation FPGA area used by the design 32 test_speed functions in parallel: HLS_SYN_CLOCK=2.827000,HLS_SYN_MEM=192, HLS_SYN_FF=142929,HLS_SYN_LUT=337,640 16 test_speed functions in parallel: HLS_SYN_CLOCK=2.827000,HLS_SYN_LAT=2713646082, HLS_SYN_MEM=96,HLS_SYN_DSP=0,HLS_SYN_FF=74689,HLS_SYN_LUT=171,112  Vivado HLS estimation is very pessimistic and Vivado doing a very good optimization of resources! “Hardware view” just to show the place used by the logic in the FPGA
  40. 45 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Offload Method: SHA3 speed_test benchmark : FPGA is >35x faster than CPU slices/32 CPU (antipode) 16 cores - 160 threads FPGA KU060-32// System P FPGA Speedup NB_ROUNDS NB_TEST_RUNS nb_elmts freq test_speed calls (msec) (msec) 100,000 65,536 32 65,536 3,200,000 22 1,260 57 100,000 65,536 128 65,536 12,800,000 85 3,460 41 100,000 65,536 4,096 65,536 409,600,000 2,715 95,975 35 100,000 65,536 8,192 65,536 819,200,000 5,429 190,347 35 100,000 65,536 32,767 65,536 3,276,700,000 21,709 754,198 35 100,000 65,536 65,536 65,536 6,553,600,000 43,418 1,505,790 35 “The lower the better”
  41. 46 SNAP Framework built on Power™ CAPI technology 2017, IBM

    Corporation Conclusion This benchmark validates several points: - Combining CAPI SNAP and Vivado HLS : - gives real good performances with very little changes needed to the initial C code program - gives a very simple way to call the action on FPGA from the application on server - Code synthesized in a mid-range FPGA is able to beat CPU by a factor x35 on performance side ! - The complete porting + optimizing was done by 2 engineers within…..11 days - Porting code to HLS : 2 days - Integrate code into SNAP : 2 days - Optimize code to beat CPU : 7 days