[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" ]CUDA &amp; OpenCL Training[/custom_headline]

ArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. We provide customized on-site training courses. We can travel to your location and provide a CUDA or OpenCL training course tailored to meet your application-specific needs. We also offer trainings at our Atlanta office.

We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.

[button type="flat" shape="rounded"  size="regular" href="mailto:sales@arrayfire.com?Subject=Training%20Inquiry"]Contact us about a 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]

[/content_band][content_band bg_color="#F2f2f2" inner_container="true" no_margin="true" border="none" padding_top="10px" padding_bottom="40px" ]

[column type="one-half"][gap size="10%"]<img class="aligncenter wp-image-4806" src="http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1395437543311.png" alt="gears" width="427" height="400" />

[/column][column type="one-half" last="true"]

[custom_headline type="left" level="h2"]Included in the course[/custom_headline]

You provide the minds, and we'll take care of the rest. Each training comes with the following:

[icon_list] [icon_list_item type="angle-double-right"]Instruction by an excellent and interesting expert[/icon_list_item] [icon_list_item type="angle-double-right"]Hands-on exercises[/icon_list_item][icon_list_item type="angle-double-right"]Use of a laptop with CUDA and OpenCL capable GPUs and CPUs [/icon_list_item] [icon_list_item type="angle-double-right"]Choice of Linux or Windows operating system[/icon_list_item][icon_list_item type="angle-double-right"]Printed manual of lecture material[/icon_list_item][icon_list_item type="angle-double-right"]Electronic copy of programming exercises[/icon_list_item][/icon_list]

[button type="flat" shape="rounded"  size="regular" href="mailto:sales@arrayfire.com?Subject=Training%20Inquiry"]Go ahead, contact us about a training[/button]

[/column][/content_band]

[content_band bg_image="http://sandbox.arrayfire.com/wp-content/uploads/2014/11/Epipheo-background1.png" parallax="true" inner_container="true" no_margin="true" border="none" padding_top="10px" padding_bottom="40px" ]

[blockquote cite="<span style="color: #ffffff;">Brian Rapp</span>" type="center"]<span style="color: #ffffff;">One can'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 my particular needs and concerns.</span>

<span style="color: #ffffff;">—Brian Rapp,  U.S. Army Research Lab</span>[/blockquote]

[/content_band]

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

[custom_headline type="left" level="h2"]Training Syllabus[/custom_headline] [column type="one-half"] [custom_headline type="left" level="h5"  accent="false"]Day 1, Introduction[/custom_headline] Lectures:
GPU Computing Overview
The Programming Model
Basic Dataset Mapping Techniques
Libraries, ArrayFire
Profiling Tools

Practice:
A Simple Kernel
Equivalent ArrayFire Example
Using Libraries
Monte Carlo Pi Estimation
Timing and ArrayFire
Debugging Code

[custom_headline type="left" level="h5" accent="false"]Day 3, Multi-GPU[/custom_headline] Lectures (customizable):
Multi-GPU Use Cases
Multi-GPUs: Contexts
Existing Libraries
Scaling Across Multiple GPUs

Practice:
Out of Core Problems: Matrix Multiply
Task Level Parallelism: Optimization
ArrayFire Multi-GPU[/column]

[column type="one-half" last="true"] [custom_headline type="left" level="h5" accent="false"]Day 2, Optimization[/custom_headline] Lectures:
Architecture: Grids, Blocks, and Threads
Memory Model: Global, Shared, and Constant Memory
Advanced Mapping Techniques
Streams: Asynchronos Launches and Concurrent Execution
ArrayFire: Lazy Evaluation and Code Vectorization

Practice:
Matrix Transpose
Optimization Using Shared Memory
Median Filter
Optimization Using Constant Memory
Stream Example
ArrayFire Example: Nearest Neighbor Algorithm

[custom_headline type="left" level="h5" accent="false"]Day 4, Algorithm Problems[/custom_headline]

Lectures and Practice (customizable):
Reductions
Scan Algorithms
Sort
Convolution
Customer-Specific Problem

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