<p>We have previously talked about upcoming <a href="http://sandbox.arrayfire.com/computer-vision-arrayfire-part-1/">computer</a> <a href="http://sandbox.arrayfire.com/computer-vision-in-arrayfire-part-2/">vision</a> algorithms in the next version of ArrayFire. Today we are going to discuss some of the bigger changes and additions to the next version.</p>
<h3 id="new-cpu-backend">New CPU backend</h3>
<p>In addition to CUDA and OpenCL backends, you can now run ArrayFire natively on any CPU. This is another step we've taken in our efforts to make ArrayFire truly portable. The biggest benefits the new CPU backend include:</p>
<ul>
<li><p><strong>Hardware and Software neutrality</strong>: You can now build and ship applications without worrying about the hardware and drivers preset on end users' machines. You can also port your applications easily to embedded and mobile platforms where CUDA and OpenCL may not be available.</p></li>
<li><p><strong>Heterogeneous Computing</strong>: It is now easier to get higher utilization on your compute server / cluster. The ability to run the same code across CPUs, GPUs, and accelerators reduces development time.</p></li>
</ul>
<h3 id="improvements-to-the-c-api">Improvements to the C API</h3>
<p>A cleaner and simpler C API allows you to build wrappers for higher level languages in an easier manner. Some of the highlights of the upcoming C API include:</p>
<ul>
<li>An <code>af_array</code> handle that stores the metadata such as array dimensions and data type</li>
<li><strong>J</strong>ust <strong>I</strong>n <strong>T</strong>ime compilation support</li>
<li>Arithmetic, numerical, trigonometric, and other mathematical functions</li>
<li>Statistics functions and set operations</li>
</ul>

<pre>
af_array A, B, C;

// Create af_array from host data
float *h_A = {0, 1, 2, 3, 4, 5};
dim_type a_dims[] = {2, 3};
af_create_array(&A, h_A, 2, a_dims);

// Create a random array on the device
dim_type b_dims[] = {3, 3};
af_randu(&B, 2, b_dims, f32);

// Perform matrix multiplication
af_matmul(&C, A, B, AF_NO_TRANSPOSE, AF_NO_TRANSPOSE);
</pre>

<h3 id="more-coming">More coming</h3>
<p>This is just a teaser to bigger and better things coming from us in the near future. If you have any questions please contact us!</p>
<ul>
<li>technical@arrayfire.com: Technical questions about ArrayFire.</li>
<li>sales@arrayfire.com: Questions about sales and licensing of ArrayFire</li>
</ul>