[content_band inner_container="true" no_margin="true" border="none" padding_top="10px" padding_bottom="40px" ]

[column type="one-half"][custom_headline type="left" level="h2" ]Xilinx SDAccel Training[/custom_headline]

ArrayFire is the exclusive SDAccel Xilinx Authorized Training Partner (ATP) for North America. Our SDAccel training courses help enable design teams to leverage Xilinx FPGAs for OpenCL application acceleration.

<img src="http://sandbox.arrayfire.com/wp-content/uploads/2015/05/xilinx_alliance-1024x332.png" alt="xilinx_alliance" />[custom_headline type="left" level="h5"]Course Name[/custom_headline]Developing and Optimizing Applications Using the OpenCL Framework for FPGAs

[custom_headline type="left" level="h5"]Course Description[/custom_headline]

Learn how to develop new applications written in OpenCL, C/C++, and RTL in the SDAccel™ development environment for use on Xilinx FPGAs. Porting existing applications is also covered.

Training lectures and labs for this course will enable attendees to gain necessary skills to: identify parallel computing applications suitable for accelerating on FPGAs, understand how the FPGA architecture lends itself to parallel computing, write OpenCL programs for FPGAs, and utilize the SDAccel Development Environment.

This course also demonstrates how to debug and profile OpenCL code using the SDAccel development environment. In addition, you will also learn how to maximize performance and efficiently utilize FPGA resources.

<strong>Course Duration</strong> – 2 days

<strong>Price</strong> – Contact ArrayFire for quote (Xilinx training credits accepted.

<strong>Who Should Attend? –</strong> Software and hardware developers who want to develop OpenCL, C/C++, and RTL applications in the SDAccel development environment

<strong>Prerequisites – </strong>Basic knowledge of C/C++

<strong>Software Tools – </strong>SDAccel development environment and common build tools

<strong>Hardware – </strong>Architecture: 7 series, UltraScale, UltraScale+

&nbsp;

[button type="flat" shape="rounded"  size="regular" href="mailto:sales@arrayfire.com?Subject=Training%20Inquiry"]Contact us to register for training[/button]

[/column]

[column type="one-half" last="true" fade="true" fade_animation="in-from-right" class="center-text"][gap size="15%"][image src="http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Professor-AF_Exported-e1395436350363.png" ][/column]<span style="color: #ffffff;">n't ask for better individualized instruction than the environment I was fortunate enough to encounter.</span> <span style="color: #ffffff;">The instructor was able to completely focus on </span>[content_band inner_container="true" no_margin="true" border="none" padding_top="10px" padding_bottom="40px" ]

[custom_headline type="left" level="h2"]Course Outline[/custom_headline] [column type="one-half"] [custom_headline type="left" level="h5"  accent="false"]Day 1[/custom_headline]
<ul>
 	<li>Introduction to OpenCL</li>
 	<li>Comparison of CPU, GPU, and FPGA Architectures</li>
 	<li>OpenCL Support for Xilinx FPGAs</li>
 	<li>FPGA Hardware Details</li>
 	<li>Introduction to the OpenCL API</li>
 	<li><strong>Lab 1: </strong>Creating an OpenCL Program from Scratch</li>
 	<li>OpenCL Execution Model</li>
 	<li><strong>Lab 2: </strong>Vector Addition</li>
 	<li>Memory Hierarchy</li>
 	<li>Profiling and Debugging</li>
 	<li><strong>Lab 3</strong>: Pi by Monte Carlo Processes</li>
 	<li>Optimization</li>
 	<li><strong>Lab 4</strong>: Maximizing Performance</li>
 	<li><strong>Lab 5</strong>: Optimizing Kernels</li>
</ul>
[custom_headline type="left" level="h5" accent="false"]Day 2[/custom_headline]
<ul>
 	<li>Using the SDAccel Development Environment: Coding, Compiling, Emulating, Profiling, and Debugging</li>
 	<li><strong>Lab 6</strong>: Profiling and Debugging Using the SDAccel Development Environment GUI</li>
 	<li>Using Existing C/C++ Code as Kernels in OpenCL</li>
 	<li><strong>Lab 7</strong>: Optimizing C/C++ Code for OpenCL</li>
 	<li>RTL IP as Kernels in OpenCL</li>
 	<li><strong>Lab 8</strong>: Using an RTL Kernel</li>
</ul>
[column type="one-half" last="true"] [custom_headline type="left" level="h5" accent="false"]Lab Descriptions[/custom_headline]
<ul>
 	<li><strong>Lab 1: </strong>Creating an OpenCL Program from Scratch – Provides an overview of OpenCL API, memory transfers, and kernel enqueuer operations.</li>
 	<li><strong>Lab 2: </strong>Vector Addition – Learn how to execute parallel kernels.</li>
 	<li><strong>Lab 3</strong>: Pi by Monte Carlo Processes – Implement the Pi by Monte Carlo processes.</li>
 	<li><strong>Lab 4</strong>: Maximizing Performance – Use vector data types and increase bandwidth.</li>
 	<li><strong>Lab 5</strong>: Optimizing Kernels – Use Loop Unrolling and Loop Pipelining.</li>
 	<li><strong>Lab 6</strong>: Profiling and Debugging Using the SDAccel Development Environment GUI – Learn how to use interactive programming tools to improve performance and squash bugs.</li>
 	<li><strong>Lab 7</strong>: Optimizing C/C++ Code for OpenCL – Convert existing C/C++ code into a kernel that can be used by OpenCL</li>
 	<li><strong>Lab 8</strong>: Using an RTL Kernel – Learn how to use existing, highly optimized IP in a new OpenCL application.</li>
</ul>
&nbsp;

[button type="flat" shape="rounded"  size="regular" href="mailto:sales@arrayfire.com?Subject=Training%20Inquiry"]Okay, <em>now register</em>[/button][/column][/content_band]