Guide Organization

This User Guide employs the integrated profiling in SDAccel™ to analyze and understand the implications of OpenCL™ constructs on FPGA performance. This guide uses a few key designs as vehicles to illustrate performance characteristics and in turn, suggests design techniques to write OpenCL accelerators using FPGAs. The chapters in this guide are organized as follows:

  • Chapter 2: What is an FPGA?

    This chapter introduces the computational elements available on an FPGA and how they compare to a processor. It covers topics such as FPGA memory hierarchy, logic elements, and how these elements interrelate.

  • Chapter 3: What is OpenCL?

    This chapter introduces the basic concepts of the OpenCL programming standard. It provides an overview of the standard, provides definitions of terminologies used in the standard, and describes how FPGAs are uniquely suited for the parallel computational aspects of the standard.

  • Chapter 4: Application Optimization Flow

    The recommended flow for optimizing an application in the SDAccel Environment.

  • Chapter 5: Estimating Performance

    This chapter shows you how to generate a perfomance estimate and how to analyze the resulting report.

  • Chapter 6: Profiling the Application in the SDAccel Environment

    This chapter describes how to generate reports and collect, display, and interpret profiling results in the SDAccel™ Environment.

  • Chapter 7: SDAccel Optimization Recommendations

    This chapter provides a list of recommendations on host code, data movement, and kernel development to optimize performance of an OpenCL application

  • Chapter 8: Optimizing Host Code

    This chapter describes techniques and strategies on host code optimization.

  • Chapter 9: Moving Data Efficiently between Kernel and Global Memory

    This chapter describes techniques and strategies on efficient data movement between the kernel and global memories.

  • Chapter 10: Optimizing Kernels

    This chapter describes techniques and strategies on optimizing the logic inside a kernel.

  • Appendix A: On-Boarding Examples

    This appendix lists example categories, key concepts, and location of the examples.

  • Appendix B: Additional Resources and Legal Notices

    This appendix lists additional resources for further reading. It also provides the legal copyright information for this guide.