Getting Started with CAPI SNAP: Hardware Development for Software Engineers

  • Lukas Wenzel
  • Robert Schmid
  • Balthasar Martin
  • Max PlauthEmail author
  • Felix Eberhardt
  • Andreas Polze
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11339)


To alleviate development of FPGA-based accelerator function units for software engineers, the OpenPOWER Accelerator Work Group has recently introduced the CAPI Storage, Network, and Analytics Programming (SNAP) framework. However, we found that software engineers are still overwhelmed with many aspects of the novel hardware development framework. This paper provides background and instructions for mastering the first steps of hardware development using the CAPI SNAP framework. The insights reported in this paper are based on the experiences of software engineering students with little to no prior knowledge about hardware development.


FPGA Programming environment Tutorial 



We would like to thank everyone at IBM who held close contact and helped us during the project, including but not limited to: Frank Haverkamp, Jörg-Stephan Vogt, Sven Boekholt, Thomas Fuchs, Bruno Mesnet, Nicolas Mäding, and Bruce Wile.


  1. 1.
    Fowers, J., Brown, G., Cooke, P., Stitt, G.: A performance and energy comparison of FPGAs, GPUs, and multicores for sliding-window applications. In: Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, FPGA 2012, pp. 47–56. ACM, New York (2012)Google Scholar
  2. 2.
    IBM China Research Lab: SuperVessel Cloud for POWER/OpenPower.
  3. 3.
    IBM Corporation: capi-utils package. GitHub.
  4. 4.
    IBM Corporation: Power Service Layer Simulation Engine (PSLSE). GitHub.
  5. 5.
    IBM Corporation: PSL Checkpoint Files for the CAPI SNAP Design Kit.
  6. 6.
    IBM Corporation: CAPI SNAP Education Series: Module #1 - CAPI SNAP Overview (2017) (Presentation)Google Scholar
  7. 7.
    Intel Corporation: Github Organisation for the Open Programmable Acceleration Engine.
  8. 8.
    Intel Corporation: Intel FPGA SDK for OpenCL, December 2017.
  9. 9.
    Luebbers, E., Liu, S., Chu, M.: Simplify Software Integration for FPGA Accelerators with OPAE (White Paper).
  10. 10.
    OpenPOWER Accelerator Work Group: CAPI Storage, Network, and Analytics Programming (SNAP) Framework. IBM developerWorks.
  11. 11.
    OpenPOWER Accelerator Work Group: CAPI Storage, Network, and Analytics Programming (SNAP) Framework Repository. GitHub.
  12. 12.
    Stuecheli, J., Blaner, B., Johns, C.R., Siegel, M.S.: CAPI: a coherent accelerator processor interface. IBM J. Res. Dev. 59(1), 7:1–7:7 (2015)CrossRefGoogle Scholar
  13. 13.
    Wile, B.: Coherent Accelerator Processor Proxy (CAPI) on POWER8, October 2014. presented at Enterprise 2014Google Scholar
  14. 14.
    Wilke, K.: Tinkering with CAPI. Such Programming, January 2016.
  15. 15.
    Xilinx Corporation: The Xilinx SDAccel Development Environment.
  16. 16.
    Xilinx Corporation: Vivado Design Suite. Product Website.
  17. 17.
    Xilinx Inc.: Xilinx Introduces Zynq-7000 Family, Industry’s First Extensible Processing Platform, March 2011. Press ReleaseGoogle Scholar
  18. 18.
    Zhang, Z.: Getting Started With Open Programmable Acceleration Engine, August 2017. Webinar.

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Operating Systems and Middleware Group, Hasso Plattner Institute for Digital EngineeringUniversity of PotsdamPotsdamGermany

Personalised recommendations