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

[column type="one-half"][custom_headline type="left" level="h3" ]TRAINING[/custom_headline] Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL.

ArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. We provide customized on-site training courses for customers that have 3 or more attendees from their organization. We can travel to your location and provide a CUDA or OpenCL training course tailored to meet your application-specific needs. We also offer individual trainings at our Atlanta office. Please <a href="mailto:sales@arrayfire.com">contact us</a> to learn more about our training offerings.

We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses. For more information about the content of our training lectures and hands-on practicums, please see the following training course syllabus.

[/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]

[column type="one-half"]

[custom_headline type="left" level="h3"]INCLUDED IN COURSE[/custom_headline]

[icon_list] [icon_list_item type="angle-double-right"]Instruction by an excellent and interesting expert, with 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]

[/column][column type="one-half" last="true"][button type="flat" shape="rounded" size="jumbo" href="mailto:sales@arrayfire.com?Subject=Training%20Inquiry"] Register for Training[/button]

[/column]

[gap size="5%"]

[custom_headline type="left" level="h3"]TRAINING COURSE 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:
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:
Reductions
Scan Algorithms
Sort
Convolution
Customer-Specific Problem [/column][/content_band]