(4024,6,'2013-05-07 14:25:31','2013-05-07 18:25:31','<a href=\"http://www.linkedin.com/in/alessandrosavoia\">Alessandro Savoia</a> and researchers at <a href=\"http://www.uniroma3.it/\">Università degli Studi Roma Tre</a> have achieved an order of magnitude improvement in the performance of a beamforming application using ArrayFire for GPU acceleration with CUDA-capable NVIDIA GPUs.\n\nThis application involves conventional beamforming. Steps include the application of a time delay to each signal vector, summation across all vectors, and processing on the result. Processing includes demodulation, envelope extraction, and logarithmic compression.\n\n<img class=\"aligncenter size-full wp-image-4025\" alt=\"beamforming_diagram\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/05/beamforming_diagram.jpg\" width=\"652\" height=\"244\" />\n\nArrayFire\'s functions for shifting, interpolation, and filtering made this application possible for acceleration on GPUs and reduced the time to develop significantly.\n\nAlessandro\'s benchmarks show that a CPU-only version was only running at 1 frame/sec, while the ArrayFire-accelerated version was running at 10-20 frames/sec, depending on the dataset.\n\nAlessandro and his team are looking forward to the next phase of this work which will involve adaptive beamforming and the acceleration of large matrix multiplies using ArrayFire and GPUs.\n\nBeamforming is a straightforward win for GPU computing and is being done productively by many ArrayFire users around the world. Have you considered using GPU and ArrayFire for your beamforming or signal processing projects?\n\n&nbsp;\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.hpcwire.com/hpcwire/2013-04-08/heterogeneous_computing_in_firing_range.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/158287269_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.hpcwire.com/hpcwire/2013-04-08/heterogeneous_computing_in_firing_range.html\" target=\"_blank\">Heterogeneous Computing in Firing Range</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.sys-con.com/node/2595220\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/155483480_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.sys-con.com/node/2595220\" target=\"_blank\">Eight-Channel Programmable High Voltage Ultrasound Transmit Beamformer From Supertex Delivers Better Board Density and Image Quality</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.cedailynews.com/2013/04/netgear-enhances-80211ac-router-performance-with-beamforming.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/162291213_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.cedailynews.com/2013/04/netgear-enhances-80211ac-router-performance-with-beamforming.html\" target=\"_blank\">NETGEAR Enhances 802.11ac Router Performance With Beamforming+</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.virtual-strategy.com/2013/04/23/kymeta-first-successfully-demonstrate-ka-band-satellite-link-using-flat-panel-metamateria\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/162664955_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.virtual-strategy.com/2013/04/23/kymeta-first-successfully-demonstrate-ka-band-satellite-link-using-flat-panel-metamateria\" target=\"_blank\">Kymeta First to Successfully Demonstrate Ka-band Satellite Link Using Flat-Panel Metamaterials MSA-T Antenna</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.h16613.com/2013/04/usa-raytheons-exceptional-dual-band.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/157114970_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.h16613.com/2013/04/usa-raytheons-exceptional-dual-band.html\" target=\"_blank\">USA: Raytheon\'s Exceptional Dual-Band Radar Capability Demonstrated</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.parabolicarc.com/2013/04/25/nasa-selects-44-proposals-for-sbir-phase-ii-awards/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/163343698_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.parabolicarc.com/2013/04/25/nasa-selects-44-proposals-for-sbir-phase-ii-awards/\" target=\"_blank\">NASA Selects 44 Proposals for SBIR Phase II Awards</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"\" src=\"http://img.zemanta.com/pixy.gif?x-id=69161dc9-a678-456b-9868-f2535a0af343\" /></div>','Beamforming with ArrayFire','','publish','open','open','','beamforming-with-arrayfire','','','2013-05-07 14:25:31','2013-05-07 18:25:31','',0,'http://blog.accelereyes.com/blog/?p=4024',0,'post','',0),(4138,1,'2013-05-20 12:54:14','2013-05-20 16:54:14','<pre class=\"font-size:17 line-height:20 lang:default decode:true\">   Driver: Installation Failed</pre>\n&nbsp;\n\nYou may find this error message while trying to set up the NVIDIA CUDA Toolkit in Ubuntu.\n\nI found it when I was installing the toolkit for <a href=\"http://www.accelereyes.com/products/arrayfire\">ArrayFire</a>\n\n&nbsp;\n\n<b>[1]</b><b> </b><span style=\"text-decoration: underline;\"><b>CUDA Toolkit Installation</b></span>\n\n1. Download the CUDA Toolkit in the <a href=\"https://developer.nvidia.com/cuda-downloads\">link</a>. <a href=\"https://developer.nvidia.com/cuda-downloads\" rel=\"nofollow\">\n</a>\n\n2. Extract the .run file in a location\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo sh cuda_5.0.35_linux_64_ubuntu11.10-1.run --extract &lt;location&gt;</pre>\n&nbsp;\n\n3. Exit the X server (press Ctrl+Alt+F1) and stop the display manager by the following command.\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo stop lightdm</pre>\n&nbsp;\n\n4. cd to the location and now there are run files named samples*, devdriver* and cudatoolkit*.\n\n5. Install devdriver (*only if NVIDIA Driver is not installed)\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo sh devdriver_5.0_linux_64_304.54.run</pre>\n&nbsp;\n\n6. Install cudatoolkit\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo sh cudatoolkit-5.0.35_linux_64_ubuntu11.10.run</pre>\nIn the end, when it asks <em>\"Would you like to create a symbolic link /usr/local/cuda/ pointing to /usr/local/cuda-x.x?\"</em>, you must enter (y)es.\n\nIf it didn\'t ask, or you didn\'t enter (y)es, enter the following command to create a symbolic link.\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   ln -s /usr/local/cuda-x.0 ./usr/local/cuda</pre>\n&nbsp;\n\n7. Install sample (*optional)\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo sh cuda-samples_5.0.35_linux.run</pre>\n&nbsp;\n\n8. Reboot your machine\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo reboot</pre>\n&nbsp;\n\n&nbsp;\n\n<strong>[2]</strong><span style=\"text-decoration: underline;\"><strong> ArrayFire Installation</strong></span>\n\n1. Create <a href=\"http://www.accelereyes.com/\"><i>AccelerEyes</i></a> account to download <a href=\"http://www.accelereyes.com/products/arrayfire\">ArrayFire</a>\n\n2. Unzip arrayfire in /usr/local\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   sudo unzip ArrayFire*.zip -d /usr/local</pre>\n&nbsp;\n\n&nbsp;\n\n<b>[3] </b><span style=\"text-decoration: underline;\"><b>Environmental Variables Setting</b></span>\n\n<b> </b>1. Open bash setting\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   vim ~/.bashrc</pre>\n&nbsp;\n\n2. Add the following lines in the end (probably only need to set LD_LIBRARY_PATH)\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   export AF_PATH=/usr/local/arrayfire\n   export CUDA=/usr/local/cuda\n   export PATH=/usr/local/cuda/bin:$PATH\n   export LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/lib64:/lib64:$LD_LIBRARY_PATH</pre>\n&nbsp;\n\n3. Reload bash setting\n<pre class=\"font-size:17 line-height:20 lang:batch decode:true\">   source ~/.bashrc</pre>\n&nbsp;\n<div id=\"content\">\n<div id=\"bodyContent\">\n\nNote: This may not work in laptops with optimus\n\n</div>\n</div>','Solution to NVIDIA Toolkit Installation Error for Ubuntu 12.10  [Driver: Installation Failed]','','publish','open','open','','solution-to-nvidia-toolkit-installation-error-for-ubuntu-12-10-driver-installation-failed','','','2013-05-20 12:54:14','2013-05-20 16:54:14','',0,'http://blog.accelereyes.com/blog/?p=4138',0,'post','',0),(4325,4,'2013-06-17 16:09:44','2013-06-17 20:09:44','<a href=\"http://en.wikipedia.org/wiki/Bill_Dally\">Bill Dally</a> of NVIDIA gave a wonderful keynote today at <a href=\"http://www.isc-events.com/isc13/\">ISC 2013</a>. He focused on addressing the challenges facing our market in getting to exascale computing.\n\nHe talked about how Moore’s law is alive and well because transistors continue to double at an astonishing rate. However, the additional transistors are not translating into the same big performance gains as they did in the 1990’s. Whereas performance used to grow 50% per year, performance today is growing at a much slower pace.\n\nThe biggest bottleneck to more performance is energy efficiency. Bill showed slides of chips and talked about the picojoules required to compute versus those required to move data and operands around the chip. The take home message was that communication across modern processors takes much more power than arithmetic calculations.\n\nIn order to get to exascale, we need processors that are 25x more energy efficient than those available today. Only 10% of that performance boost is expected to come from process improvements in silicon technology between now and 2020. The rest will have to come from improvements in circuits and architectures, mainly focused on reducing the power required to communicate data across the chip.\n\nBill also spent time discussing the software side of HPC. He showed a diagram depicting the interplay between programmers, tool vendors, and architecture teams. He talked about how those 3 groups need to play well together, like kids on a soccer team, in order to move the market forward. Programmers need to rely on tools and focus on their science rather than wasting time re-inventing wheels. Architecture teams need to expose enough interface to the tool developers so that efficient tools can be made. Tools teams need to focus on quality and build trust with programmers.\n\nThese are all things we focus on at AccelerEyes with ArrayFire. We spend an enormous amount of manpower in quality testing our software and in working with our users to prioritize features for upcoming ArrayFire releases. Doing so enables us to build useful functions to accelerate science, engineering, and finance codes.\n\nWe look forward to finding the video and slides of Bill Dally’s keynote posted online, and we’ll provide <a href=\"http://blogs.nvidia.com/blog/2013/06/21/improving-power-and-programming-keys-to-the-exascale-kingdom\">a link to that information</a> when it is posted by NVIDIA and the ISC 2013 coordinators.\n\nIf you are at ISC 2013, you can find us demoing in NVIDIA’s booth #220 near the exhibition entryway.\n\n&nbsp;\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://insidehpc.com/2013/05/08/nvidias-bill-dally-on-future-challenges-of-large-scale-computing/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/167118455_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://insidehpc.com/2013/05/08/nvidias-bill-dally-on-future-challenges-of-large-scale-computing/\" target=\"_blank\">Nvidia\'s Bill Dally on Future Challenges of Large-Scale Computing</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.nag.com/2013/05/isc13-preview-supercomputing-in-leipzig.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/173585042_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.nag.com/2013/05/isc13-preview-supercomputing-in-leipzig.html\" target=\"_blank\">ISC\'13 Preview - Supercomputing in Leipzig</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://streamcomputing.eu/blog/2013-06-16/amd-vs-nvidia-two-figures-tell-a-whole-story/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/177895910_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://streamcomputing.eu/blog/2013-06-16/amd-vs-nvidia-two-figures-tell-a-whole-story/\" target=\"_blank\">AMD vs NVIDIA - Two figures tell a whole story</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://insidehpc.com/2013/06/08/interview-david-bader-on-supercomputing-the-human-condition/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/176119607_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://insidehpc.com/2013/06/08/interview-david-bader-on-supercomputing-the-human-condition/\" target=\"_blank\">Interview: David Bader on Supercomputing the Human Condition</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.hpcwire.com/hpcwire/2013-06-13/six_can_t_miss_sessions_for_isc_13.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/177370471_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.hpcwire.com/hpcwire/2013-06-13/six_can_t_miss_sessions_for_isc_13.html\" target=\"_blank\">Six Can\'t Miss Sessions for ISC\'13</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"\" src=\"http://img.zemanta.com/pixy.gif?x-id=f57a52a2-62ca-432f-a395-791fdfaac60d\" /></div>','ISC 2013 Keynote by Bill Dally of NVIDIA','','publish','open','open','','isc-2013-keynote-by-bill-dally-of-nvidia','','','2013-06-17 16:09:44','2013-06-17 20:09:44','',0,'http://blog.accelereyes.com/blog/?p=4325',0,'post','',0),(4340,4,'2013-06-18 17:32:15','2013-06-18 21:32:15','<a href=\"http://newsroom.intel.com/community/intel_newsroom/bios?n=Stephen%20S.%20Pawlowski&amp;f=searchAll\">Stephen Pawlowski</a> of Intel gave an interesting keynote today at <a href=\"http://www.isc-events.com/isc13\">ISC 2013</a>. He continued the theme of <a href=\"http://blog.accelereyes.com/blog/2013/06/17/isc-2013-keynote-by-bill-dally-of-nvidia/\">yesterday\'s keynote</a> to address challenges our market faces in getting to exascale computing. Here is a summary of the points he made during his talk:\n<ul>\n	<li>Getting to exascale by 2020 requires performance improvement of 2x every year</li>\n	<li>Innovations anticipated include stacked chips and optical layers</li>\n	<li>DRAM is not scaling with Moore\'s Law</li>\n	<li>More power goes into transferring data than in computing</li>\n	<li>Need to operate transistors near threshold</li>\n	<li>New materials for DRAM needed. Resistive memory could replace DRAM.</li>\n	<li>Need to explore both the big die and the small die paths as we approach 2020\n<ul>\n	<li>Big die path leads to 10 billion transistors on a die</li>\n	<li>Small die path entails fewer transistors on a small cost effective die</li>\n</ul>\n</li>\n</ul>\nIt is clear that Intel is thinking hard about the challenges facing the processor industry and exploring many simultaneous paths to push the market forward.\n\nWe look forward to finding the video and slides of Stephen Pawlowski’s keynote posted online, and we’ll provide a link to that information when it is posted by Intel and the ISC 2013 coordinators.\n\nIf you are at ISC 2013, you can find us demoing in NVIDIA’s booth #220 near the exhibition entryway.\n\n&nbsp;\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://insidehpc.com/2013/05/06/intel-research-lab-to-explore-exascale-technologies-at-barcelona-supercomputing-center/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/166435413_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://insidehpc.com/2013/05/06/intel-research-lab-to-explore-exascale-technologies-at-barcelona-supercomputing-center/\" target=\"_blank\">Intel Research Lab to Explore Exascale Technologies at Barcelona Supercomputing Center</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.hpcwire.com/hpcwire/2013-06-17/top_500_results_reveal_global_acceleration_balance_shift.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/177979797_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.hpcwire.com/hpcwire/2013-06-17/top_500_results_reveal_global_acceleration_balance_shift.html\" target=\"_blank\">Top 500 Results Reveal Global Acceleration, Balance Shift</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://insidehpc.com/2013/06/10/intels-raj-hazra-on-why-we-really-need-exascale/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/176604706_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://insidehpc.com/2013/06/10/intels-raj-hazra-on-why-we-really-need-exascale/\" target=\"_blank\">Intel\'s Raj Hazra on Why We Really Need Exascale</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.hpcwire.com/hpcwire/2013-06-17/intel_powers_the_worlds_fastest_supercomputer_reveals_hpc_technologies.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/178110246_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.hpcwire.com/hpcwire/2013-06-17/intel_powers_the_worlds_fastest_supercomputer_reveals_hpc_technologies.html\" target=\"_blank\">Intel Powers the World\'s Fastest Supercomputer, Reveals HPC Technologies</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://newsroom.intel.com/community/intel_newsroom/blog/2013/06/17/intel-powers-the-worlds-fastest-supercomputer-reveals-new-and-future-high-performance-computing-technologies\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/178079225_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://newsroom.intel.com/community/intel_newsroom/blog/2013/06/17/intel-powers-the-worlds-fastest-supercomputer-reveals-new-and-future-high-performance-computing-technologies\" target=\"_blank\">Intel Powers the World\'s Fastest Supercomputer, Reveals New and Future High Performance Computing Technologies</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.eweek.com/servers/intel-gives-glimpse-of-upcoming-next-gen-xeon-phi/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/178141425_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.eweek.com/servers/intel-gives-glimpse-of-upcoming-next-gen-xeon-phi/\" target=\"_blank\">Intel Gives Glimpse of Upcoming Next-Gen Xeon Phi</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"\" src=\"http://img.zemanta.com/pixy.gif?x-id=52bc7a33-741a-488f-80ea-ed367b5119f6\" /></div>','ISC 2013 Keynote by Stephen Pawlowski of Intel','','publish','open','open','','isc-2013-keynote-by-stephen-pawlowski-of-intel','','','2013-06-18 17:32:15','2013-06-18 21:32:15','',0,'http://blog.accelereyes.com/blog/?p=4340',0,'post','',0),(4417,6,'2013-08-13 15:26:18','2013-08-13 19:26:18','<p dir=\"ltr\">If you\'re reading our blog, BLAS and FFT libraries likely form an important basis for your work. For instance, BLAS and FFT libraries are used in some of ArrayFire\'s higher-level functions for linear algebra, signal processing, and image processing.</p>\n<p dir=\"ltr\">Today, OpenCL is getting a big boost in BLAS and FFT library availability. <a href=\"http://developer.amd.com/community/blog/amd-releases-appml-source-code-creates-clmath-library/\">AMD has announced</a> a bold and generous move to contribute back to the OpenCL community by open sourcing its APPML BLAS and FFT OpenCL libraries.</p>\n<p dir=\"ltr\">At AccelerEyes, we have used AMD\'s OpenCL libraries in the past within our higher-level ArrayFire library. These libraries are the best BLAS and FFT OpenCL libraries available anywhere. We are thrilled to now join AMD and the open source community in maintaining and improving these libraries for the benefit of all.</p>\n<p dir=\"ltr\">The source is <a href=\"https://github.com/clMathLibraries\">now available as \"clMath\" on GitHub</a>. The clMath libraries include <a href=\"https://github.com/clMathLibraries/clBLAS\">clBLAS</a> and <a href=\"https://github.com/clMathLibraries/clFFT\">clFFT</a>. The libraries will run on any <a href=\"http://www.khronos.org/conformance/adopters/conformant-products/\">OpenCL-conformant device</a>. They will benefit all OpenCL developers, spanning from mobile apps to supercomputing codes.</p>\n<p dir=\"ltr\">We have collaborated closely with AMD in the lead up to making clMath available. AccelerEyes engineers are dedicating significant resources for continued development of the clMath library. These libraries will also be used in our upcoming ArrayFire v2.0 release.</p>\n<p dir=\"ltr\">This marks a great step in the right direction for the OpenCL ecosystem. We continue to observe increased demand for OpenCL from our customers in a wide variety of application domains, and we look forward to ongoing development efforts contributing to the growing OpenCL community.</p>\n<p dir=\"ltr\">Along with AMD, we welcome your adoption and contributions to the source, and we look forward to contributing to this project for years to come!</p>\n<p dir=\"ltr\">---</p>\n<p dir=\"ltr\" id=\"docs-internal-guid-755f30d6-74af-67c2-03fa-d105d953a68f\">Additional info:</p>\n\n<ul>\n	<li>The clMath source will be licensed under the Apache License, Version 2.0<a href=\"http://www.apache.org/licenses/LICENSE-2.0.html\"> http://www.apache.org/licenses/LICENSE-2.0.html</a></li>\n	<li>Both projects compile for Linux and Windows</li>\n	<li>The project wiki pages contain build instructions and other documentation</li>\n	<li>Interested developers should make sure to scan through the wiki</li>\n	<li>Relevant user groups: <a title=\"clMath\" href=\"https://groups.google.com/forum/#!forum/clmath\" target=\"_blank\">clMath</a> and <a title=\"clMath-developers\" href=\"https://groups.google.com/forum/#!forum/clmath-developers\" target=\"_blank\">clMath-developers</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"\" src=\"http://img.zemanta.com/pixy.gif?x-id=84266a26-e681-4f10-a355-36b83da9a8e2\" /></div>','clMath: An Open Source BLAS and FFT Library for OpenCL','','publish','open','open','','clmath-an-open-source-blas-and-fft-library-for-opencl','','','2013-08-13 15:26:18','2013-08-13 19:26:18','',0,'http://blog.accelereyes.com/blog/?p=4417',0,'post','',0),(4451,4,'2013-08-24 10:22:29','2013-08-24 14:22:29','Last week, HPCwire ran an interesting article entitled, \"<a href=\"http://www.hpcwire.com/hpcwire/2013-08-19/where_has_hpcs_math_gone.html\">Where has HPC\'s math gone?</a>\" The article analyzes the increasing importance of math solvers to successful HPC outcomes. As the number of cores grows, the percentage of time HPC codes spend in solvers increases significantly.\n\nThe following chart illustrates this trend nicely:\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/08/appvssolver.jpg\"><img class=\"aligncenter size-full wp-image-4452\" alt=\"appvssolver\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/08/appvssolver.jpg\" width=\"337\" height=\"281\" /></a>\n\n&nbsp;\n\n<a href=\"http://accelereyes.com/arrayfire\">ArrayFire</a> is ideally suited for HPC applications that need to accelerate the toughest math problems. ArrayFire contains hundreds of math functions across numerous domains.\n\nIn general, if the HPC community really wants to solve this problem, it will begin to invest more in libraries than in compilers that have no chance at optimizing these tough math problems automatically. Rather, it is only through expertly-tuned codes, such as those developed into top HPC libraries like ArrayFire, that our industry can hope to achieve great solver performance at scale.\n\nGo read the <a href=\"http://www.hpcwire.com/hpcwire/2013-08-19/where_has_hpcs_math_gone.html\">full post</a> from HPC wire.\n\n&nbsp;\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"\" src=\"http://img.zemanta.com/pixy.gif?x-id=72396dfa-4a54-47a6-abd9-6d9d0a8f7f33\" /></div>','Application Time vs Solver Time','','publish','open','open','','application-time-vs-solver-time','','','2013-08-24 10:22:29','2013-08-24 14:22:29','',0,'http://blog.accelereyes.com/blog/?p=4451',0,'post','',0),(4455,7,'2013-09-04 11:55:10','2013-09-04 15:55:10','AccelerEyes and NVIDIA invite you to participate in a joint <a title=\"Webinar Registration\" href=\"https://www2.gotomeeting.com/register/837914162\" target=\"_blank\">webinar</a> designed to help you learn about ArrayFire, a productive, easy-to-use GPU software library for C, C++, and Fortran.\n\nMajor defense and intelligence institutions are discovering just how effective GPU computing can be in enabling unique solutions for applications related to video analysis, recognition, and tracking. During this informative webinar, Kyle Spafford, a Senior Software Developer at AccelerEyes, will explain how to accelerate common defense and intelligence algorithms using ArrayFire.\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/09/Defense_Pic.png\"><img class=\"aligncenter  wp-image-4463\" alt=\"Defense_Pic\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/09/Defense_Pic-1024x575.png\" width=\"614\" height=\"345\" /></a>\n<p id=\"zoneKey\">The webinar will take place on Tuesday, September 17, 2013 at 10:00 AM PDT.</p>\nRegister for this webinar by clicking <a title=\"Register Here\" href=\"https://www2.gotomeeting.com/register/837914162\" target=\"_blank\">here</a>.\n\nWe hope you will join us as we discuss exciting developments in GPU computing software!','Joint Webinar with NVIDIA - ArrayFire for Defense and Intelligence Applications','','publish','open','open','','joint-webinar-with-nvidia-arrayfire-for-defense-and-intelligence-applications','','','2013-09-04 11:55:10','2013-09-04 15:55:10','',0,'http://blog.accelereyes.com/blog/?p=4455',0,'post','',0),(4472,7,'2013-09-30 09:45:33','2013-09-30 13:45:33','In case you missed it, hundreds of attendees recently joined us in a special joint webinar with NVIDIA. The webinar was led by Kyle Spafford, a Senior Developer at AccelerEyes. Kyle detailed how GPU computing can be implemented in the defense and intelligence fields. Kyle specifically addressed enabling unique solutions for applications related to video analysis, recognition, and tracking using the <a title=\"Download today!\" href=\"http://www.accelereyes.com/products/arrayfire\">ArrayFire</a> software library for C, C++, and Fortran.\n\nAt the conclusion of the presentation Kyle fields questions from those in attendance, including \"How does ArrayFire Fortran Lib compare to CUDA Fortran?\" (see 59:36 mark), \"Can you target a specific GPU if you have multiple on the machine?\" (56:14), and \"How can I combine several kernels to one fat kernel by using your API data structures?\" (43:52).\n\nA big thanks to NVIDIA and all who participated in the webinar!\n\nHere\'s the webinar video:\n\n<iframe src=\"//www.youtube.com/embed/5DO99j5pSL0\" height=\"315\" width=\"560\" allowfullscreen=\"\" frameborder=\"0\"></iframe>\n\nBe sure to <a title=\"Register today!\" href=\"https://accelereyes.webex.com/mw0307l/mywebex/default.do?siteurl=accelereyes\">register</a> for our upcoming webinars:\n<ul>\n	<li>October 16, 2013, <em>ArrayFire - Big Acceleration for CUDA and OpenCL</em></li>\n	<li>December 4, 2013, <em>Getting Started with ArrayFire - A 30-minute Jump Start</em></li>\n</ul>\n&nbsp;','ArrayFire for Defense and Intelligence Applications - Joint Webinar Recap','','publish','open','open','','arrayfire-for-defense-and-intelligence-applications-joint-webinar-recap','','','2013-09-30 09:45:33','2013-09-30 13:45:33','',0,'http://blog.accelereyes.com/blog/?p=4472',0,'post','',1),(4500,7,'2013-10-07 17:01:47','2013-10-07 21:01:47','<h2 style=\"text-align: center;\"><img class=\"size-medium wp-image-4487 aligncenter\" alt=\"ArrayFire\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/10/arrayfire_logo_w400px-1-300x61.jpg\" width=\"300\" height=\"61\" /></h2>\n<p style=\"text-align: left;\"><strong>ArrayFire v2.0 is <a title=\"Download ArrayFire!\" href=\"http://www.accelereyes.com/products/arrayfire\">now available for download</a>. The second iteration of our free, fast, and simple GPU library now supports both CUDA and OpenCL devices.</strong></p>\n\n<h2 style=\"text-align: left;\">Major Updates</h2>\n<ul>\n	<li>ArrayFire now works on OpenCL enabled devices</li>\n	<li>New and improved <a title=\"ArrayFire documentation\" href=\"http://www.accelereyes.com/support/documentation\">documentation</a></li>\n	<li>Optimized for new GPUs--NVIDIA Kepler (K20) and AMD Tahiti (7970)</li>\n</ul>\n<h2>New in ArrayFire OpenCL</h2>\n<ul>\n	<li>Same APIs as ArrayFire CUDA version</li>\n	<li>Supports both Linux and Windows</li>\n	<li>Just In Time Compilation (JIT) of kernels</li>\n	<li>Parallel for: <a title=\"GFOR usage\" href=\"http://www.accelereyes.com/arrayfire/c/page_gfor.htm\" target=\"_blank\">gfor</a></li>\n	<li>Accelerated algorithms in the following domains\n<ul>\n	<li><a title=\"Image Processing Functions\" href=\"http://www.accelereyes.com/arrayfire/c/group__image__mat.htm\" target=\"_blank\">Image Processing</a></li>\n	<li><a title=\"Signal Processing Functions\" href=\"http://www.accelereyes.com/arrayfire/c//group__image__mat.htm\" target=\"_blank\">Signal Processing</a></li>\n	<li><a title=\"Data Analysis functions\" href=\"http://www.accelereyes.com/arrayfire/c/group__data__mat.htm\" target=\"_blank\">Data Analysis and Statistics</a></li>\n	<li><a title=\"Visualization functions\" href=\"http://www.accelereyes.com/arrayfire/c//group__gfx__mat.htm\">Visualization</a></li>\n	<li><a title=\"List of ArrayFire functions\" href=\"http://www.accelereyes.com/arrayfire/c/group__arrayfire__func.htm\" target=\"_blank\">And more</a></li>\n</ul>\n</li>\n</ul>\n<h2>New in ArrayFire CUDA</h2>\n<ul>\n	<li>New <a title=\"New Signal processing functions\" href=\"http://www.accelereyes.com/arrayfire/c/group__signal__func__cpp__approx.htm#gadf7bb6bdd0fb3c9008096d47c349d073\" target=\"_blank\">Signal</a> and <a title=\"New Image Processing functions\" href=\"http://www.accelereyes.com/arrayfire/c/group__props__mat.htm\" target=\"_blank\">Image</a> processing functions</li>\n	<li>Faster <a href=\"http://www.accelereyes.com/docs_alpha/group__array__func__cpp__transpose.htm#gaeadf9256b56215a58dc12f14d97312eb\">transpose</a> and <a title=\"Multiply two arrays together\" href=\"http://www.accelereyes.com/docs_alpha/group__blas__func__cpp__matmul.htm#ga9185fe2c0de3dbd2cf03bd7eb62c2bab\">matrix multiplication</a></li>\n	<li>Better debugging support for GDB and Visual Studio</li>\n	<li>Bug fixes to make overall experience better</li>\n</ul>\nFor a more complete list of  the many ArrayFire v2.0 enhancements available, check out our <a title=\"ArrayFire v2.0 Release Notes\" href=\"http://www.accelereyes.com/docs_alpha/releasenotes.htm\">release notes</a>.\n\nTo learn more about ArrayFire licensing, visit the <a title=\"ArrayFire Prices and Licensing\" href=\"http://www.accelereyes.com/products/arrayfire_licensing\">ArrayFire licensing page</a>.\n\nWe leverage our deep GPU expertise and vast code base for GPU consulting services. Set up a free GPU consultation today by emailing us at <a href=\"mailto:sales@accelereyes.com\">sales@accelereyes.com</a>.','ArrayFire v2.0 Release Candidate Now Available for Download','','publish','open','open','','arrayfire-v2-0-release-candidate-now-available-for-download','','','2013-10-07 17:01:47','2013-10-07 21:01:47','',0,'http://blog.accelereyes.com/blog/?p=4500',0,'post','',0),(4526,4,'2013-11-12 00:29:56','2013-11-12 04:29:56','AMD\'s <a href=\"http://developer.amd.com/apu/\">APU 2013</a> kicked off today with keynotes and a welcome reception. The developer summit is themed as the epicenter of heterogeneous computing. AMD has a world class CPU and a world class GPU and is pushing the industry forward by combining both of those devices into the same chip, the APU.\n\nAMD\'s APUs are programmable via OpenCL, the industry standard for heterogeneous development. AMD is also leading the way with standards for <a href=\"http://hsafoundation.com/\">Heterogeneous System Architecture (HSA)</a>. APU13 will have many technical sessions, keynotes, and demos around OpenCL and HSA.\n\nWe are at the APU conference demoing <a href=\"http://accelereyes.com/arrayfire\">ArrayFire</a> acceleration on two of AMD\'s newest hardware offerings:\n<ul>\n	<li>A machine with the latest AMD Radeon R9 209X discrete GPU</li>\n	<li>A machine with the latest AMD Kaveri APU</li>\n</ul>\nBoth of those new chips were highlighted in today\'s keynote by Lisa Su:\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/BY1HyZfCAAAxFvS.jpg\"><img class=\"aligncenter  wp-image-4527\" alt=\"BY1HyZfCAAAxFvS\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/BY1HyZfCAAAxFvS.jpg\" width=\"563\" height=\"285\" /></a></p>\n<p style=\"text-align: center;\"></p>\n<p style=\"text-align: left;\">We are excited to see what else APU 2013 brings as the first full day begins tomorrow. Stay tooned for more!</p>\n<p style=\"text-align: left;\"></p>\n\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.pcworld.com/article/2062430/amds-next-gen-kaveri-chip-due-in-january.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219960957_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.pcworld.com/article/2062430/amds-next-gen-kaveri-chip-due-in-january.html\" target=\"_blank\">AMD\'s next-gen Kaveri chip due in January</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://electronicdesign.com/dev-tools/interview-manju-hegde-talks-about-amds-heterogeneous-system-architecture\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/218797832_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://electronicdesign.com/dev-tools/interview-manju-hegde-talks-about-amds-heterogeneous-system-architecture\" target=\"_blank\">Interview: Manju Hegde Talks About AMD\'s Heterogeneous System Architecture</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.electronista.com/articles/13/11/11/developer.improvements.use.advances.in.heterogeneous.system.architecture/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219964530_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.electronista.com/articles/13/11/11/developer.improvements.use.advances.in.heterogeneous.system.architecture/\" target=\"_blank\">AMD enhances CPU, GPU ties with new software; servers to benefit</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://hothardware.com/News/AMD-Announces-New-Tools-Development-Capabilities-at-APU13-Confirms-Kaveri-is-A-512Core-Part/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219973978_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://hothardware.com/News/AMD-Announces-New-Tools-Development-Capabilities-at-APU13-Confirms-Kaveri-is-A-512Core-Part/\" target=\"_blank\">AMD Announces New Tools, Development Capabilities at APU13, Confirms Kaveri Has 512 GPU Cores and Can Run BF4</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://hothardware.com/News/AMD-Announces-Server-and-Data-Center-Optimized-Software-For-APUs/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219936322_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://hothardware.com/News/AMD-Announces-Server-and-Data-Center-Optimized-Software-For-APUs/\" target=\"_blank\">AMD Announces Server and Data Center Optimized Developer Software For APUs</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://venturebeat.com/2013/11/11/amd-drives-cpugpu-combo-into-the-data-center-with-new-allies/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219958620_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://venturebeat.com/2013/11/11/amd-drives-cpugpu-combo-into-the-data-center-with-new-allies/\" target=\"_blank\">AMD drives CPU/GPU combo into the data center with new allies</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Enhanced by Zemanta\" href=\"http://www.zemanta.com/?px\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"Enhanced by Zemanta\" src=\"http://img.zemanta.com/zemified_e.png?x-id=8c8b233e-9e59-449c-a803-bfc5d4ff0c57\" /></a></div>','APU 2013 - Day 1 Recap','','publish','open','open','','apu-2013-day-1-recap','','','2013-11-12 00:29:56','2013-11-12 04:29:56','',0,'http://blog.accelereyes.com/blog/?p=4526',0,'post','',0),(4531,4,'2013-11-13 03:34:10','2013-11-13 07:34:10','Today was the first full day of AMD\'s <a href=\"http://developer.amd.com/apu/\">APU 2013</a> conference. It was a whirlwind of heterogeneous computing.\n\nFrom the morning keynotes, three particular salient points stuck out to us:\n<ol>\n	<li>Mike Muller, CTO at ARM, talked about heterogeneous computing. He said it nicely with, \"Heterogeneous computing is the future. It has also been our past, but we didn\'t notice because a few shiny companies overshadowed everything else.\" That is a great way to describe it. The future of heterogeneous computing involves the rise in importance of non-x86 processors. Throwing a few more MHz onto a CPU no longer is capable of satiating computational demands.</li>\n	<li>Nandini Ramani, VP at Oracle, talked about the importance of Java for heterogeneous computing. She pointed to the 9 million worldwide Java developers. She announced that Oracle would be joining the HSA foundation. She had some killer slides which included code snippets and lambda expressions, a bold move for a VP in an industry keynote talk - we liked it!</li>\n	<li>Tony King-Smith, VP at Imagination Technologies, talked about the big gains mobile GPUs are experiencing (soon surpassing 20-30 GFLOPs) and the importance of libraries for the ecosystem.</li>\n</ol>\nHere are some other interesting tweets from the highlights of the conference today:\n\nhttp://storify.com/melonakos/apu-2013-day-2-tweets\n\nWhat were your favorite moments of APU 2013 today?\n\n&nbsp;\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.pcworld.com/article/2062880/oracle-seeks-java-performance-boost-joins-hsa-foundation.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220296097_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.pcworld.com/article/2062880/oracle-seeks-java-performance-boost-joins-hsa-foundation.html\" target=\"_blank\">Oracle seeks Java performance boost, joins HSA Foundation</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://semiaccurate.com/2013/11/11/amd-charts-path-java-gpu/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219968379_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://semiaccurate.com/2013/11/11/amd-charts-path-java-gpu/\" target=\"_blank\">AMD charts a path to Java on the GPU</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.accelereyes.com/blog/2013/11/12/apu-2013-day-1-recap/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220017583_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.accelereyes.com/blog/2013/11/12/apu-2013-day-1-recap/\" target=\"_blank\">APU 2013 - Day 1 Recap</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.techweekeurope.co.uk/news/delayed-amd-kaveri-chips-arrive-year-end-131558\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220062760_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.techweekeurope.co.uk/news/delayed-amd-kaveri-chips-arrive-year-end-131558\" target=\"_blank\">Delayed AMD \'Kaveri\' Chips To Arrive By Year-End</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://electronicdesign.com/dev-tools/unified-heterogeneous-computing-arrives\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219996071_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://electronicdesign.com/dev-tools/unified-heterogeneous-computing-arrives\" target=\"_blank\">Unified Heterogeneous Computing Arrives</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Enhanced by Zemanta\" href=\"http://www.zemanta.com/?px\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"Enhanced by Zemanta\" src=\"http://img.zemanta.com/zemified_e.png?x-id=9a3a9514-ac9d-4533-b504-7a34b9e48955\" /></a></div>','APU 2013 – Day 2 Recap','','publish','open','open','','apu-2013-day-2-recap','','','2013-11-13 03:34:10','2013-11-13 07:34:10','',0,'http://blog.accelereyes.com/blog/?p=4531',0,'post','',1),(4537,4,'2013-11-14 01:35:10','2013-11-14 05:35:10','<blockquote class=\"twitter-tweet\">Big announcement here at <a href=\"https://twitter.com/search?q=%23APU13&amp;src=hash\">#APU13</a>! AMD CTO, Mark Papermaster, just announced 2 additions to the 2014 Mobile APU roadmap <a href=\"http://t.co/sWHMhb9AAe\">http://t.co/sWHMhb9AAe</a>\n— AMD (@AMD) <a href=\"https://twitter.com/AMD/statuses/400757083827486720\">November 13, 2013</a></blockquote>\nToday was the final day of AMD\'s <a href=\"http://developer.amd.com/apu/\">APU 2013</a> conference. The theme of today was mostly focused on gaming topics, so it was not as relevant to technical computing as yesterday. However, the mobile product announcement from AMD in the tweet above was interesting.\n\nOpenCL is just as important in mobile computing as it is in HPC computing. Both ends of the spectrum have a need for speed and can achieve it through great data parallelism. AMD is looking to make better inroads into mobile computing with these APU announcements.\n\nOverall, APU 2013 was a fantastic opportunity to network with our customers and partners. We look forward to another great year of accelerated application development on AMD APUs and discrete GPUs.\n\nThis picture sums it up pretty well!\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1278.jpg\"><img class=\"aligncenter  wp-image-4539\" alt=\"IMG_1278\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1278.jpg\" width=\"461\" height=\"614\" /></a></p>\nWhat were your favorite moments of APU 2013?\n\n&nbsp;\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.accelereyes.com/blog/2013/11/12/apu-2013-day-1-recap/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220017583_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.accelereyes.com/blog/2013/11/12/apu-2013-day-1-recap/\" target=\"_blank\">APU 2013 - Day 1 Recap</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.pcmag.com/article2/0,2817,2427097,00.asp?kc=PCRSS03069TX1K0001121\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220665442_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.pcmag.com/article2/0,2817,2427097,00.asp?kc=PCRSS03069TX1K0001121\" target=\"_blank\">AMD Unveils \'Mullins\' and \'Beema\' APUs for 2014</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.accelereyes.com/blog/2013/11/13/apu-2013-day-2-recap/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_91_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.accelereyes.com/blog/2013/11/13/apu-2013-day-2-recap/\" target=\"_blank\">APU 2013 - Day 2 Recap</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://gizmodo.com/amd-beema-and-mullins-more-horsepower-less-juice-but-1463969698\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220673229_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://gizmodo.com/amd-beema-and-mullins-more-horsepower-less-juice-but-1463969698\" target=\"_blank\">AMD\'s Roadmap: More Horsepower, Less Juice, But Is It Enough?</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.computerworld.co.nz/article/531805/amd_hopes_tablet_turnaround_new_2-watt_chip/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220700657_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.computerworld.co.nz/article/531805/amd_hopes_tablet_turnaround_new_2-watt_chip/\" target=\"_blank\">AMD hopes for tablet turnaround with new 2-watt chip</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Enhanced by Zemanta\" href=\"http://www.zemanta.com/?px\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"Enhanced by Zemanta\" src=\"http://img.zemanta.com/zemified_e.png?x-id=00e8c1d3-e836-4288-bf7b-bd5c19765927\" /></a></div>','APU 2013 – Day 3 Recap','','publish','open','open','','apu-2013-day-3-recap','','','2013-11-14 01:35:10','2013-11-14 05:35:10','',0,'http://blog.accelereyes.com/blog/?p=4537',0,'post','',0),(4543,4,'2013-11-21 01:54:15','2013-11-21 05:54:15','SC13 was awesome this week! Tomorrow is the last day of the exhibition. For those of you that did not make it to the show, here are some pictures from our exhibit:\r\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1450.jpg\"><img class=\"aligncenter  wp-image-4564\" alt=\"IMG_1450\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1450.jpg\" width=\"614\" height=\"461\" /></a></p>\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4561\" alt=\"IMG_1457\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1457.jpg\" width=\"614\" height=\"532\" /></p>\r\n<p style=\"text-align: center;\"><strong>The AccelerEyes Booth</strong></p>\r\n<p style=\"text-align: center;\">--------------------------------------------------------------------------------------------------------</p>\r\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1451.jpg\"><img class=\"aligncenter  wp-image-4557\" alt=\"IMG_1451\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1451.jpg\" width=\"461\" height=\"614\" /></a></p>\r\n<p style=\"text-align: center;\"><strong>ArrayFire OpenCL Demo on ARM Mali</strong></p>\r\n<p style=\"text-align: center;\">--------------------------------------------------------------------------------------------------------</p>\r\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1452.jpg\"><img class=\"aligncenter  wp-image-4558\" alt=\"IMG_1452\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1452.jpg\" width=\"461\" height=\"614\" /></a></p>\r\n<p style=\"text-align: center;\"><strong>ArrayFire CUDA Demo on NVIDIA K40</strong></p>\r\n<p style=\"text-align: center;\">--------------------------------------------------------------------------------------------------------</p>\r\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1453.jpg\"><img class=\"aligncenter  wp-image-4559\" alt=\"IMG_1453\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1453.jpg\" width=\"461\" height=\"614\" /></a></p>\r\n<p style=\"text-align: center;\"><strong>ArrayFire OpenCL Demo on Intel Xeon Phi Coprocessor</strong></p>\r\n<p style=\"text-align: center;\">--------------------------------------------------------------------------------------------------------</p>\r\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1454.jpg\"><img class=\"aligncenter  wp-image-4560\" alt=\"IMG_1454\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1454.jpg\" width=\"461\" height=\"614\" /></a></p>\r\n<p style=\"text-align: center;\"><strong>ArrayFire OpenCL Demo on AMD FirePro GPU</strong></p>\r\n<p style=\"text-align: center;\">--------------------------------------------------------------------------------------------------------</p>\r\n<p style=\"text-align: left;\">It was a great show and wonderful to see so many ArrayFire users in person. If you could not attend and would like to learn more about our CUDA or OpenCL products or services, let us know!</p>\r\n\r\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\r\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\r\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.accelereyes.com/blog/2013/10/07/arrayfire-v2-0-release-candidate-now-available-for-download/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_63_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.accelereyes.com/blog/2013/10/07/arrayfire-v2-0-release-candidate-now-available-for-download/\" target=\"_blank\">ArrayFire v2.0 Release Candidate Now Available for Download</a></li>\r\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://notonlyluck.com/2013/11/18/two-kinds-of-exhibits-to-watch-at-tradeshows/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_124_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://notonlyluck.com/2013/11/18/two-kinds-of-exhibits-to-watch-at-tradeshows/\" target=\"_blank\">Two Kinds of Exhibits to Watch at Tradeshows</a></li>\r\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.eweek.com/servers/intel-execs-talk-xeon-phi-at-supercomputing-show.html\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/222596490_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.eweek.com/servers/intel-execs-talk-xeon-phi-at-supercomputing-show.html\" target=\"_blank\">Intel Execs Talk Xeon Phi at Supercomputing Show</a></li>\r\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.fool.com/investing/general/2013/11/18/nvidias-partnership-with-ibm-makes-sense.aspx\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/222178847_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.fool.com/investing/general/2013/11/18/nvidias-partnership-with-ibm-makes-sense.aspx\" target=\"_blank\">NVIDIA\'s Partnership With IBM Makes Sense</a></li>\r\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.anandtech.com/show/7515/nvidia-announces-cuda-6-unified-memory-for-cuda\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/220889050_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.anandtech.com/show/7515/nvidia-announces-cuda-6-unified-memory-for-cuda\" target=\"_blank\">NVIDIA Announces CUDA 6: Unified Memory for CUDA</a></li>\r\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://www.legitreviews.com/amd-enables-server-apu-software-to-reimagine-the-server_128704\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/219980829_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://www.legitreviews.com/amd-enables-server-apu-software-to-reimagine-the-server_128704\" target=\"_blank\">AMD Enables Server APU Software to Reimagine the Server</a></li>\r\n</ul>\r\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Enhanced by Zemanta\" href=\"http://www.zemanta.com/?px\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"Enhanced by Zemanta\" src=\"http://img.zemanta.com/zemified_e.png?x-id=9e9b61cd-6523-444f-a6d3-bc03e1db5626\" /></a></div>','Photos from SC13','','publish','open','open','','photos-from-sc13','','','2014-05-07 18:44:18','2014-05-07 18:44:18','',0,'http://blog.accelereyes.com/blog/?p=4543',0,'post','',0),(4569,4,'2013-11-21 23:42:03','2013-11-22 03:42:03','Yesterday, <a href=\"http://blog.accelereyes.com/blog/2013/11/21/photos-from-sc13/\">we posted photos</a> from our exhibit. Today was the last day of SC13, and we want to tip our hat to the wonderful partners that magnified our SC13 experience.\n<h3><strong>Creative Consultants, Mellanox, and Allinea</strong></h3>\n<a href=\"http://www.computefaster.com/\">Creative Consultants</a> ran an ArrayFire demo across several nodes using <a href=\"http://www.mellanox.com/\">Mellanox</a> interconnect. The demo was a multi-node, multi-GPU lattice boltzmann simulation. <a href=\"http://www.allinea.com/\">Allinea</a> also showcased their debugging and profiling tools on the same ArrayFire based code.\n<h3><strong>AMD</strong></h3>\nArrayFire OpenCL demos were showcased in the AMD exhibit. It was great to see momentum from AMD at SC13 carried over from the previous week\'s APU13 conference.\n<h3><strong>Microway</strong></h3>\nIn the photo below, you can see ArrayFire running on Microway\'s WhisperStation. Microway had prime real estate at the conference and surely every attendee that entered the exhibition saw this demo!\n<p style=\"text-align: center;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1447.jpg\"><img class=\"aligncenter  wp-image-4570\" alt=\"IMG_1447\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/IMG_1447.jpg\" width=\"614\" height=\"461\" /></a></p>\n\n<h3 style=\"text-align: left;\"><strong>Intel</strong></h3>\n<p style=\"text-align: left;\">One of our favorite aspects of the show is the Intel Traveler\'s Tour. Many times each day, Intel brought a guided tour of its customers by our booth and showed them ArrayFire OpenCL running on the Intel Xeon Phi Coprocessor. The guide was fantastic. He was energetic, interesting, and friendly.</p>\n<p style=\"text-align: left;\">My team and I were very grateful to Intel for this magnification of our SC13 experience. They literally introduced hundreds of potential customers to our company.</p>\n<p style=\"text-align: left;\">We also gave an invited talk in the Intel exhibit that was well-received.</p>\n\n<h3 style=\"text-align: left;\"><strong>ARM</strong></h3>\n<p style=\"text-align: left;\">One of our newest announcements is that ArrayFire now supports the ARM OpenCL devices, including the Mali GPU. ARM showcased ArrayFire in action on the Mali GPU. The photo below shows the ArrayFire demo running in the ARM exhibit, <a href=\"https://twitter.com/robmijat/status/402874582475886593\">pulled from this tweet</a>.</p>\n<p style=\"text-align: left;\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/BZdMTEuCMAAaeXJ.jpg\"><img class=\"aligncenter size-full wp-image-4571\" alt=\"BZdMTEuCMAAaeXJ\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/BZdMTEuCMAAaeXJ.jpg\" width=\"588\" height=\"784\" /></a></p>\n<p style=\"text-align: left;\">---</p>\n<p style=\"text-align: left;\">SC13 was a wonderful opportunity to work with our partners to move forward with solutions to benefit the HPC and technical computing markets.</p>\n<p style=\"text-align: left;\">What were your favorite moments of SC13?</p>\n\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles</h6>\n<ul class=\"zemanta-article-ul zemanta-article-ul-image\" style=\"margin: 0; padding: 0; overflow: hidden;\">\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.accelereyes.com/blog/2013/11/21/photos-from-sc13/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_47_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.accelereyes.com/blog/2013/11/21/photos-from-sc13/\" target=\"_blank\">Photos from SC13</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://blog.accelereyes.com/blog/2013/11/12/apu-2013-day-1-recap/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_123_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://blog.accelereyes.com/blog/2013/11/12/apu-2013-day-1-recap/\" target=\"_blank\">APU 2013 - Day 1 Recap</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://semiaccurate.com/2013/11/11/amd-charts-path-java-gpu/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_59_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://semiaccurate.com/2013/11/11/amd-charts-path-java-gpu/\" target=\"_blank\">AMD charts a path to Java on the GPU</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://wccftech.com/intel-xeon-phi-coprocessor-expand-socket-package-rumored-leave-pcie-completely/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/221828569_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://wccftech.com/intel-xeon-phi-coprocessor-expand-socket-package-rumored-leave-pcie-completely/\" target=\"_blank\">Intel Xeon Phi Coprocessor coming to LGA Socket - Rumored to Leave PCI-E Completely</a></li>\n	<li class=\"zemanta-article-ul-li-image zemanta-article-ul-li\" style=\"padding: 0; background: none; list-style: none; display: block; float: left; vertical-align: top; text-align: left; width: 84px; font-size: 11px; margin: 2px 10px 10px 2px;\"><a style=\"box-shadow: 0px 0px 4px #999; padding: 2px; display: block; border-radius: 2px; text-decoration: none;\" href=\"http://notonlyluck.com/2013/11/18/two-kinds-of-exhibits-to-watch-at-tradeshows/\" target=\"_blank\"><img style=\"padding: 0; margin: 0; border: 0; display: block; width: 80px; max-width: 100%;\" alt=\"\" src=\"http://i.zemanta.com/noimg_124_80_80.jpg\" /></a><a style=\"display: block; overflow: hidden; text-decoration: none; line-height: 12pt; height: 80px; padding: 5px 2px 0 2px;\" href=\"http://notonlyluck.com/2013/11/18/two-kinds-of-exhibits-to-watch-at-tradeshows/\" target=\"_blank\">Two Kinds of Exhibits to Watch at Tradeshows</a></li>\n</ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Enhanced by Zemanta\" href=\"http://www.zemanta.com/?px\"><img class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" alt=\"Enhanced by Zemanta\" src=\"http://img.zemanta.com/zemified_e.png?x-id=e2006f36-806d-484d-a17d-13f233db912c\" /></a></div>','Partners Magnify the SC13 Experience','','publish','open','open','','partners-magnify-the-sc13-experience','','','2013-11-21 23:42:03','2013-11-22 03:42:03','',0,'http://blog.accelereyes.com/blog/?p=4569',0,'post','',1),(4580,6,'2013-11-23 21:32:13','2013-11-23 21:32:13','<p style=\"text-align: justify;\">ARM showcased ArrayFire support for the Mali GPU at the Supercomputing \'13 conference recently held in Denver.  This exciting development caught the attention of many attendees as they viewed the ArrayFire demos running in the ARM and AccelerEyes exhibits.</p>\r\n\r\n\r\n[caption id=\"attachment_4593\" align=\"aligncenter\" width=\"717\"]<img alt=\"Visitors to the AccelerEyes exhibit check out the ArrayFire OpenCL Demo on ARM Mali at the Supercomputing Conference.\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/SC13-Photo-Restroom-shopped.jpg\" width=\"717\" height=\"621\" /> Visitors to the AccelerEyes exhibit check out the ArrayFire OpenCL demo on ARM Mali at the Supercomputing Conference.[/caption]\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify;\">Energy budgets are always constrained, and form an expensive component of any HPC system. ARM Mali GPUs provide the best performance and throughput for a given energy envelope. Partnering with ARM, AccelerEyes further reduces the cost of HPC by minimizing development time and costs.</p>\r\n<p style=\"text-align: justify;\">AccelerEyes offers the most productive software solutions for accelerating code using GPUs, coprocessors, and OpenCL devices.  AccelerEyes delivers ArrayFire to accelerate C, C++, and Fortran codes on CUDA and OpenCL devices.  ArrayFire customers come from a wide range of industries, including defense and intelligence, life science, oil and gas, finance, manufacturing, media, and others. ArrayFire has had success accelerating numerous application types, including math and numerical algorithms, image processing, signal processing, statistics, optimization, and more.</p>\r\n<img class=\"aligncenter\" alt=\"\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/11/BZdMTEuCMAAaeXJ.jpg\" width=\"412\" height=\"549\" />\r\n<p style=\"text-align: justify;\">Mali GPU users can deploy ArrayFire as a fast, easy-to-use software solution to enable acceleration of their code. ArrayFire now fully supports OpenCL. With ArrayFire v2.0, AccelerEyes has released a demo version of ARM support to select customers. In ArrayFire v2.1, AccelerEyes will make ARM-support an official feature of the ArrayFire library for use on all ARM-enabled platforms.</p>\r\n<p style=\"text-align: justify;\">Stay tuned for future updates as ARM and AccelerEyes continue collaboration on this exciting project!</p>','ARM Showcases ArrayFire OpenCL Support for Mali GPU at Supercomputing \'13','','publish','open','open','','arm-showcases-arrayfire-opencl-support-for-mali-gpu-at-supercomputing-13','','','2014-06-17 21:33:12','2014-06-17 21:33:12','',0,'http://blog.accelereyes.com/blog/?p=4580',0,'post','',0),(4581,4,'2008-12-26 20:07:08','2008-12-27 03:07:08','In an effort to keep people up-to-date with Jacket-related stuff, we are pleased to launch this new blog.  This blog will serve a few purposes:\n<ol>\n	<li>it is a place for things that don\'t really belong in the documentation, but still need a good explanation</li>\n	<li>it is a place for announcements and updates</li>\n</ol>\nOther sources of information include:\n<ol>\n	<li>The <a href=\"http://wiki.accelereyes.com\" target=\"_blank\">Jacket User Guide</a> - Official Jacket documentation</li>\n	<li>The <a href=\"http://www.accelereyes.com/wiki\" target=\"_blank\">Jacket Wiki</a> - Online Jacket documentation</li>\n	<li>The <a href=\"http://www.accelereyes.com/forums\" target=\"_blank\">Jacket Forums</a> - Online forums where users can post questions, bugs, experiences, feature requests, etc.</li>\n</ol>\nWe look forward to the launch of this blog and working with they community to make GPU MATLAB computing a valuable addition to your projects.','Welcome!','','publish','open','open','','hello-world-2','','','2008-12-26 20:07:08','2008-12-27 03:07:08','',0,'http://www.accelereyes.com/blog/?p=1',0,'post','',0),(4582,4,'2008-12-30 12:57:43','2008-12-30 19:57:43','We often get questions such as the one we just received via email:\n<blockquote>1) Any idea if you will be supporting AMD/ATI cards in future ?\n\n2) Have you considered OpenCL as a potential pathway for the future ?\n\nI can see an advantage there for you (if it takes off) in that you\'re not tied to a single vendor any more and potentially you\'d be able to take advantage of other accelerators that may support it.\n\nIt\'s very early days yet but certainly from our point of view the current paradigm of code to a single vendors card doesn\'t seem sustainable..</blockquote>\nOpenCL is a community effort to create a standard for parallel computing, with early emphasis on GPGPU computing, in the same way that OpenGL has become a standard for graphics.  The main thrust is that people want to be able to have portability across the various vendor chips.  All of the major hardware vendors have agreed to the OpenCL standard and the v1.0 spec was recently released.\n\nWhile there will be many advantages to OpenCL in the future, writing OpenCL code right now does not make much sense.  The hardware vendors have yet to build OpenCL compatible lower level tools, drivers, and most importantly for Jacket, scientific computation libraries (such as FFT, linear algebra, etc).  It\'s going to take some time for the vendors to build those critical elements.  While the hardware vendors are building from the lowest levels up, we are building from the highest levels (MATLAB) down.  In other words, Jacket essentially takes the lower level libraries and \"wraps\" them into a highly optimized higher-level system, which does all of the memory management, kernel optimizations, and compile-on-the-fly stuff underneath the hood.\n\nIf you want to write GPGPU code today that does any reasonable level of scientific computation, you only have one choice - <a href=\"http://www.nvidia.com/cuda\" target=\"_blank\">CUDA by NVIDIA</a>.  In comparison, AMD/ATI have only devoted a minimal amount of effort into Brook+.  They\'re the vendor most likely to want to push towards OpenCL early on and they\'ve already made comments to that effect.  But in order for OpenCL to work for AMD, they\'ll need to build the lower level libraries to make the scientific computations available on their chips.  Also, on the horizon is Intel with Larrabee slated for release in late 2009 or early 2010.  Intel is doing some cool things with the Ct project, but there\'s still a lot to be fleshed out on their toolchain.\n\nGiven this landscape, it is therefore straightforward for us to build Jacket in CUDA.  In anticipation of OpenCL becoming useful down the road, we have made CUDA a pluggable component of Jacket\'s backend system.  Therefore, when OpenCL is ready to go (i.e. when both NVIDIA and at least one other hardware vendor actually support OpenCL for scientists), we\'ll swap out CUDA for OpenCL, which will then open the door for Jacket users to leverage any OpenCL supported hardware platform.\n\nIn the meantime, it just doesn\'t make sense for us to spend a bunch of energy porting to OpenCL, when it doesn\'t buy us anything in terms of the portability of scientific computation to other vendor\'s platforms.  And it is key to remember that just supporting basic arithmetic in OpenCL will not be enough to be useful for MATLAB/Jacket users.  The vendors will need to build optimized scientific libraries that take advantage of their respective chip designs.\n\nWe also expect that Microsoft with push to some sort of DirectX-ish GPGPU/parallel computing language, but that is even less clear right now.  So Apple is pushing OpenCL and Microsoft will push something else and we\'ll see what ends up being the best solution for everyone.  Of course, Jacket users will want support for Windows, Linux, and Mac, so OpenCL is probably better positioned for providing OS portability than the Microsoft alternative.\n\nHopefully this answers some of the questions that people may have about our plans for supporting multiple vendors via OpenCL.  Feel free to comment or make suggestions.  We\'re happy to entertain thoughts on this.  In the end, we just want to put our development resources on the projects that will deliver the most scientific computing benefit to MATLAB users.\n\nUseful links:\n<ul>\n	<li><a href=\"http://en.wikipedia.org/wiki/OpenCL\" target=\"_blank\">http://en.wikipedia.org/wiki/OpenCL</a></li>\n	<li><a href=\"http://en.wikipedia.org/wiki/CUDA\" target=\"_blank\">http://en.wikipedia.org/wiki/CUDA</a></li>\n	<li><a href=\"http://en.wikipedia.org/wiki/AMD_FireStream\" target=\"_blank\">http://en.wikipedia.org/wiki/AMD_FireStream</a></li>\n	<li><a href=\"http://en.wikipedia.org/wiki/Intel_Ct\" target=\"_blank\">http://en.wikipedia.org/wiki/Intel_Ct</a></li>\n</ul>','OpenCL','','publish','open','open','','opencl','','','2008-12-30 12:57:43','2008-12-30 19:57:43','',0,'http://www.accelereyes.com/blog/?p=9',0,'post','',4),(4583,4,'2009-01-22 20:35:24','2009-01-23 03:35:24','In order to understand how Jacket works, it is important to understand the difference between data parallelism and task parallelism.  There are many ways to define this, but simply put and in our context:\n<ul>\n	<li><strong>Task parallelism</strong> is the simultaneous execution on multiple cores of many different functions across the same or different datasets.</li>\n	<li><strong>Data parallelism</strong> (aka SIMD) is the simultaneous execution on multiple cores of the same function across the elements of a dataset.</li>\n</ul>\nJacket focuses on exploiting data parallelism or SIMD computations.  The vectorized MATLAB language is especially conducive to good SIMD operations (more so than a non-vectorized language such as C/C++).  And if you\'re going to need a vectorized notation to achieve SIMD computation, why not choose the most popular vectorized notation - MATLAB!\n\nAs an aside, this is one of the main reasons why CUDA, Brook+, Ct, OpenCL, etc. introduce new notation to C/C++, because C/C++ does not easily describe a SIMD computation.\n\nJacket\'s upcoming \'gfor\' parallel for-loop will enable people to run the iterations of a for-loop simultaneously on the many cores of the GPU.  Essentially this is implemented by converting the problem to a data parallel problem.  Think of the loop interior as the \"function\".  This function gets executed many times across a dataset.  That\'s data parallelism.  This works due to the restriction that we enforce on \'gfor\' wherein there can be no data dependencies between loop iterations.  We\'ll write more about this in the official documentation once it\'s released.\n\nAfter we\'ve done everything we want to do with data parallelism in Jacket, we\'ll move on to task parallelism.  In the ideal future, you\'d be able to spawn off computations to other CPU cores, GPUs, or some other node and have each spawn execute in an optimally data parallel manner.  This is really cool and something to look forward to down the road.\n\nOf course, this is is meant to be a high-level explanation of things.  There are many better places to find detailed information on this, including straightforward articles on Wikipedia:\n<ul>\n	<li><a href=\"http://en.wikipedia.org/wiki/Task_parallelism\" target=\"_blank\">http://en.wikipedia.org/wiki/Task_parallelism</a></li>\n	<li><a href=\"http://en.wikipedia.org/wiki/Data_parallelism\" target=\"_blank\">http://en.wikipedia.org/wiki/Data_parallelism</a></li>\n</ul>','Data-parallelism vs Task-parallelism','','publish','open','open','','data-parallelism-vs-task-parallelism','','','2009-01-22 20:35:24','2009-01-23 03:35:24','',0,'http://www.accelereyes.com/blog/?p=36',0,'post','',1),(4584,4,'2009-01-22 21:22:55','2009-01-23 04:22:55','One of the questions people commonly ask us is:\n<blockquote>When will Jacket support LAPACK features such as eigenvalue decomposition, matrix inverse, system solvers, etc.?</blockquote>\nThe reason this question is so popular is that people recognize that these kinds of problems are well-suited for the GPU and will end up giving great performance boosts for Jacket users.  We are looking forward to delivering these functions in Jacket.\n\nJacket is currently built on top of CUDA.  For reasons why we like CUDA, see our previous blog post about <a href=\"http://www.accelereyes.com/blog/?p=9\" target=\"_self\">OpenCL</a>.  While NVIDIA is busy building from CUDA from the ground up, we are busy building Jacket from the top (MATLAB) down.  NVIDIA is working hard to promote and develop LAPACK libraries directly into CUDA.  So rather than reinvent the wheel, we prefer to work on other things while those lower level libraries are being built.\n\nOnce those libraries exist in CUDA, due to Jacket\'s modular design, it will be easy for us to \"wrap\" them into Jacket to deliver them to you within MATLAB.\n\nBy the way, in working with NVIDIA on this project and thanks to feedback from many of you on our forums, we listed the following as the highest priority functions to be included in the initial CUDA LAPACK library:\n\nTier 1 choices -\n<ul>\n	<li>getrf\n<ul>\n	<li>computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges (<a href=\"http://www.netlib.org/lapack/double/dgetrf.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgetrf.f</a>)</li>\n</ul>\n</li>\n	<li>geqpf\n<ul>\n	<li>computes an QR factorization of a general M-by-N matrix A using column pivoting (<a href=\"http://www.netlib.org/lapack/double/dgeqpf.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgeqpf.f</a>)</li>\n</ul>\n</li>\n	<li>gesvd/gesdd\n<ul>\n	<li>SVD (using divide and conquer)</li>\n	<li> GESDD computes the singular value decomposition (SVD) of a real M-by-N matrix A = U * SIGMA * transpose(V)</li>\n</ul>\n<ul>\n	<li> <a href=\"http://www.netlib.org/lapack/double/dgesdd.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgesdd.f</a></li>\n	<li> <a href=\"http://www.netlib.org/lapack/double/dgesvd.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgesvd.f</a></li>\n</ul>\n</li>\n</ul>\nLU gives direct solve capability for a lot of linear system (A*x = b) plus is also comes handy in iterative methods based on operator splitting.  QR is the basis for computing eigenvalues, condition numbers and svd.  SVD actually belongs in tier 2 but is so widely used that it deserves tier 1 attention.\n\nTier2 choices -\n<ul>\n	<li>gels/gelsd\n<ul>\n	<li>Computes least squares solution to over-determined system of linear equations</li>\n	<li>Computes minimum norm solution of an under-determined system</li>\n	<li><a href=\"http://www.netlib.org/lapack/double/dgels.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgels.f</a></li>\n	<li><a href=\"http://www.netlib.org/lapack/double/dgelsd.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgelsd.f</a></li>\n</ul>\n</li>\n	<li>gglse\n<ul>\n	<li>Solves the linear equality-constrained least squares (LSE) problem:\n<ul>\n	<li>minimize || c - A*x ||_2   subject to   B*x = d, where A is an M-by-N matrix</li>\n</ul>\n</li>\n	<li><a href=\"http://www.netlib.org/lapack/double/dgglse.f\">http://www.netlib.org/lapack/double/dgglse.f</a></li>\n</ul>\n</li>\n	<li>gesv/sgesv\n<ul>\n	<li>Solves Ax=b (sgesv – does iterative refinement)</li>\n	<li>Computes the solution to a real system of linear equations\n<ul>\n	<li>A * X = B, where A is an N-by-N matrix and X and B are N-by-NRHS matrices.</li>\n</ul>\n</li>\n	<li><a href=\"http://www.netlib.org/lapack/double/dgesv.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dgesv.f</a></li>\n	<li><a href=\"http://www.netlib.org/lapack/double/dsgesv.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dsgesv.f</a></li>\n</ul>\n</li>\n	<li>ggev\n<ul>\n	<li>Computes the generalized eigenvalues, and left and/or right generalized eigenvectors for a pair of nonsymmetric matrices</li>\n	<li><a href=\"http://www.netlib.org/lapack/double/dggev.f\" target=\"_blank\">http://www.netlib.org/lapack/double/dggev.f</a></li>\n</ul>\n</li>\n</ul>\nAnyway, hopefully this helps clarify the situation.  If you\'d like to contribute your input on CUDA LAPACK, the <a href=\"http://forums.nvidia.com/index.php?showforum=62\" target=\"_blank\">NVIDIA forums</a> is a good place to voice your thoughts on this.','LAPACK Functions in Jacket (eig, inv, etc.)','','publish','open','open','','lapack-functions-in-jacket-eig-inv-etc','','','2009-01-22 21:22:55','2009-01-23 04:22:55','',0,'http://www.accelereyes.com/blog/?p=46',0,'post','',2),(4585,4,'2009-06-16 17:00:42','2009-06-17 00:00:42','I\'m pleased to announce the release of Jacket v1.1!  This release represents a major milestone in Jacket\'s development and a great boost in functionality for Jacket customers.  The major feature of this release is the inclusion of new GPU datatypes, most notably double-precision.  We are very pleased with the performance we\'ve seen for double-precision computations.\n\nAt the time of this writing, the NVIDIA Tesla T10 series is the newest GPU on the market and NVIDIA\'s first in what will become a great line of double-precision enabled GPUs.  Even on this first double-precision generation card, we are seeing ~20x speedups for a lot of our examples and test cases.\n\nOf course, GPUs still give higher speedups when comparing single-precision GPU to single precision CPU than when comparing double-precision GPU to double-precision CPU.  Nonetheless, both cases provide great overall speedups and in the double-precision case, you get better accuracy for some simulations than you would in the single-precision case.\n\nJacket 1.1 also includes a big advancement in the ability for Jacket customers to integrate custom CUDA code.  The new Developer SDK Upgrade is now available for this.  This feature is so cool, it deserves its own post (more to come on that later).\n\nIn terms of Jacket\'s architecture, this 1.1 release is a major milestone.  Since releasing Jacket 1.0, the AccelerEyes team has more than doubled in size.  The new team members have had a great impact on Jacket and the product continues to mature, stabilize, and expand.  We\'re especially thankful for our customers and partners who provide valuable feedback that helps us to best allocate our resources to build a great product.\n\nTo give everyone access to this new release, we are resetting all trials so that you can retrial Jacket even if you\'ve trialed in the past.  To access it, just login, download, and have fun!','Commentary on Jacket v1.1','','publish','open','open','','commentary-on-jacket-v1-1','','','2009-06-16 17:00:42','2009-06-17 00:00:42','',0,'http://www.accelereyes.com/blog/?p=57',0,'post','',0),(4586,18132,'2009-11-15 23:29:03','2009-11-16 06:29:03','Wow!  Jacket is now running MATLAB on a GPU cloud server from Penguin Computing!\n\nWe were setting up demos today at SuperComputing 2009 and just got things setup inside Penguin Computing\'s booth.  Jacket is now running as compiled MATLAB code on Penguin Computing\'s POD (Penguin on Demand) cloud service!\n\nThe OpenGL visualizations are running without a hitch through VGL, so for everyone on the forums, this seems like another effective method of running Jacket remotely -- at least on Linux.\n\nDoes anyone know if VGL runs under windows?  Penguin Computing was using it quite effecitvely - their setup was very slick!','Jacket in a GPU Cloud','','publish','open','open','','jacket-in-a-gpu-cloud','','','2009-11-15 23:29:03','2009-11-16 06:29:03','',0,'http://www.accelereyes.com/blog/?p=64',0,'post','',0),(4587,1,'2010-02-01 00:31:53','2010-02-01 07:31:53','We just got off the phone with a finance firm wanting to using Jacket to process market data as it streams in. Essentially, they want to avoid loading memory into MATLAB before sending data out to the GPU. We\'ve had similar requests from defense companies streaming radar and other signals, from healthcare firms dealing with medical image processing, from companies doing video image processing, and more.\n\nProbably the best way is to use the <a href=\"http://wiki.accelereyes.com/wiki/index.php/Jacket_SDK\">Jacket SDK</a> to push data directly out to the GPU.  With the SDK, you can get accesses to both the host-side and device-side memory buffers within Jacket. With these pointers in hand, you can copy your data from disk or some socket -- and avoid an intermediate MATLAB representation.\n\nBelow I\'ve pasted the complete source code for a little function that pulls in several floating-point values from a file (in this case /dev/random) and stores that data directly into the internal Jacket host-side (CPU) buffer.  This function returns a new Jacket GPU variable that can be used in subsequent computations. From inside MATLAB, our new function \'my_read\' can be called like this:\n<pre>&gt;&gt; A = my_read;  % pull in some random values\n&gt;&gt; A + 1         % perform some computation</pre>\nBut keep in mind this is random garbage data it\'s actually reading.\n\nThis approach could similarly be extended to read from sockets, pipes, memory-mapped hardware, etc.  You could set it up to take in parameters indicating where to start reading, how much to read, etc.\n-James Malcolm\n\nDownload the <a href=\"http://www.accelereyes.com/blog/wp-content/uploads/2010/02/direct_transfer.zip\">source and Makefile</a>.\n<pre>#include &lt;jacket.h&gt;\n#include &lt;stdio.h&gt;\n\nerr_t jktFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])\n{\n    char *filename = \"/dev/random\"; /* file to read from */\n    off_t offset = 42;              /* starting position to read */\n    size_t numel = 10;              /* how many values to read */\n\n    FILE *f = fopen(filename, \"rb\");\n    if (fseek(f, offset, SEEK_CUR) != 0)\n        return err(\"couldn\'t fseek\");\n\n    /* note: assume single-precision */\n    mxArray *m = plhs[0] = jkt_new(1, numel, mxSINGLE_CLASS, mxREAL);\n\n    /* get host-side pointer */\n    void *h_data;\n    TRY(jkt_mem_host(&amp;h_data, m));\n\n    /* copy from disk directly into host-side buffer */\n    if (fread(h_data, sizeof(float), numel, f) != numel)\n        return err(\"problem reading\");\n\n    return errNone;\n}</pre>\nHere\'s a Makefile to build it on Linux/Mac.\n<pre># 1) wherever you have CUDA\nCUDADIR = /usr/local/cuda\n# 2) wherever you have Matlab\nMATLAB = /opt/matlab\n# 3) wherever you have Jacket installed\nJKT = /usr/local/jacket\n# 4) uncomment if 64-bit\n#  OS = 64\n\nMEXT = $(shell $(MATLAB)/bin/mexext)\nCUDAINC = -I$(CUDADIR)/include\nCUDALIB = -L$(CUDADIR)/lib$(OS) -lcudart -Wl,-rpath,$(CUDADIR)/lib$(OS)\nJKTLIB = -L$(JKT)/engine -ljacket$(OS)\nJKTINC = -I$(JKT)/engine/include/\nNVMEX = $(JKT)/sdk/common/nvmex -f $(JKT)/sdk/common/nvopts.sh\n\nall: my_read.$(MEXT)\n\n%.$(MEXT) : %.cu\n	env MATLAB=$(MATLAB) $(NVMEX) $^ $(JKTLIB) $(JKTINC)\n                                     $(CUDAINC) $(CUDALIB)\n                                     -cxx -largeArrayDims</pre>','Streaming data to the GPU','Learn how to stream data directly to the GPU using the Jacket SDK.','publish','open','open','','streaming-data-to-the-gpu','','','2010-02-01 00:31:53','2010-02-01 07:31:53','',0,'http://www.accelereyes.com/blog/?p=91',0,'post','',0),(4588,4,'2010-02-04 15:39:32','2010-02-04 22:39:32','Well, here is a recent story with one of our customers that accomplished 98X performance speed up with Jacket in 16 days.  Of the 16 days, 15 days were spent sending emails back and forth about the problem and less than a day was spent getting the customer code in Jacket and running some performance tests!  Who would have imagined GPU programming with performance in 1 day.  Happy Reading.\n\n<strong>Day 1:</strong>\n\nCustomer uses inverse radon (or iradon in MATLAB terms) extensively for their back projection algorithms.  They would like to know when the iradon function will be available/supported in Jacket.\n\nAccelerEyes product management informs the customer that the inverse radon algorithm used in MATLAB is based on the filtered back project algorithm.  The key elements of that algorithm are interpolation, fft and frequency domain filtering which are all supported in Jacket and should provide decent speed-up for large enough data sizes.\n\n<strong>Day 4:</strong>\n\nThe customer provides email response to product management indicating a couple of things:\n<ol>\n	<li>They would be interested in working with AccelerEyes and Jacket on an initial implementation of inverse radon given the information provided in the Day 1 response.</li>\n	<li>If the initial implementation demonstrated a substantial savings in execution time, the customer could allocate the appropriate internal resource to leverage Jacket and GPUs for their needs.</li>\n	<li>They had some (very limited) experience with programming GPUs directly (we assume CUDA), and had determined that the approach would require far too much development effort from a relatively small staff of software developers.</li>\n	<li>The customer is ready to work on a prototype/pilot to get some results.</li>\n</ol>\n<strong>Day 17:</strong>\n\n<span style=\"text-decoration: underline;\">6:49am: </span> After 13 days, the customers sends a follow up email to product management and corporate email box asking whether or not AccelerEyes was interested in working with the customer on the inverse radon prototype/pilot.\n<blockquote>“turns out the spam-filters are not always your best friend as the customers email on Day 4 got caught in the corporate spam filter and the product manager never got the message” – morale of the story is follow up email with a phone call in time sensitive situations!</blockquote>\n<span style=\"text-decoration: underline;\">11:31am:</span> After profuse apologies by product management regarding the delay, an exchange of information about the customer code begins.  A review of the use case for the function is undergone (use case = the MATLAB code developed by the customer for the application).   The MATLAB code for the iradon function itself , in addition to the MATLAB built-in functions are also reviewed with the customer to understand all aspects of the application/algorithm.\n\n<span style=\"text-decoration: underline;\">2:31pm: </span> It becomes clear what needs to be done with Jacket and how parts of the customer’s MATLAB code and other m-files need to be prepared for Jacket.\n<blockquote><strong>For all Jacket users:</strong> many of you are interested in various MATLAB functions to be implemented in Jacket to ease the programming effort to leverage GPUs, increase performance on more applications and in general achieve more results.  Although the outline below of what needed to be done to get iradon working for this customer was not a design goal and is NOT for all Jacket users, this approach can be used by many Jacket customers to achieve results today without waiting for the specific function or functions to show up in Jacket documentation and fully supported.\n\nThe approach:\n\nStep 1: Find the function in the MATLAB source tree that is bottlenecking your performance – in this case “iradon.m”\n\nStep 2: Save the function or .m file as a GPU function like foo.m, in this case the function was saved as “giradon.m”\n\nStep 3: In your foo.m function (this case giradon.m), pass the input variables from your application into the new function you are creating (example - function [img,H] = iradon(varargin) becomes function [img,H] = giradon(varargin))\n\nStep 4: Add a “g” pre-fix to zeros when allocating memory which will allocate memory on the GPU for execution – if applicable\n\nStep 5: Assign variables to be GPU variables p=gsingle(p); that will be used during execution of the most computational intensive calls within the m-file.  It is only necessary to make GPU variables of the data that goes to the GPU and where the Jacket function is supported – fft for example.  In this particalur case the following code was added to the iradon.m file to make it Jacket compatible for ‘linear’ case.\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%% Change 1: Add below line 158</span></p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%% Converting to gsingle values for GPU usage :</span></p>\n<p style=\"padding-left: 30px;\">costheta=gsingle(costheta);</p>\n<p style=\"padding-left: 30px;\">sintheta=gsingle(sintheta);</p>\n<p style=\"padding-left: 30px;\">p=gsingle(p);</p>\n<p style=\"padding-left: 30px;\">x=gsingle(x);</p>\n<p style=\"padding-left: 30px;\">y=gsingle(y);</p>\n<p style=\"padding-left: 30px;\">ctrIdx=gsingle(ctrIdx);</p>\nStep 6: Vectorize code where possible. Especially where for-loops are involved.  In the iradon case the customer vectorized the for-loop in the function filterProjections() as shown below:\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%% Change 2: Lines 204-206</span></p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%% Following \'for\' loop unrolled using vectorizations</span></p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">% for i = 1:size(p,2)</span></p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%    p(:,i) = p(:,i).*H; % frequency domain filtering</span></p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">% end</span></p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%% After Vectorizing the above for-loop :</span></p>\n<p style=\"padding-left: 60px;\">p(:,1:size(p,2))=p(:,1:size(p,2)).*repmat(H,1,size(p,2));</p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">%%</span></p>\nStep 6:  Open your MATLAB code that calls the bottleneck function.  You have two options here, you can program your MATLAB code to always use GPUs by changing the call to iradon.com (in this example) to foo.m or giradon.m or you can set a flag that will ask the user if they have GPUs or not.\n<p style=\"padding-left: 30px;\">If no, they follow the normal execution of the code using the standard m-files.</p>\n<p style=\"padding-left: 30px;\">If yes, you will need to follow an execution path that has the iradon.m file (from this example) changed to giradon.m or foo.m.</p>\nOnce you have modified your MATLAB application, save and run the code with the GPU option on.</blockquote>\n<span style=\"text-decoration: underline;\">3:54pm:</span> Customer needs to test and benchmark changes to code and chooses to use the following data sizes for initial testing while a determination is made of the most typical parameters used in reconstructions :\n<p style=\"padding-left: 30px;\">P = phantom(128);</p>\n<p style=\"padding-left: 30px;\">R = radon(P,0:179);</p>\n<p style=\"padding-left: 30px;\">I1 = iradon(R,0:179);</p>\n<p style=\"padding-left: 30px;\">I2 = iradon(R,0:179,\'linear\',\'none\');</p>\n<strong>Day 18:</strong>\n\n<span style=\"text-decoration: underline;\">10:17am:</span> Customer determines that the most typical parameters would be to increase the phantom size to <strong>1024 X 1024 ( P = phantom(1024) )</strong> from P = phantom(128).  It turned out the number of angles used is 180 so the initial use case of 0:179 was in line with the requirement.\n\n<span style=\"text-decoration: underline;\">5:55pm:</span> The following performance results are achieved with Jacket on GPUs using two different hardware configurations and various dimensions of data.\n\nSystem 1:\n\nCPU: Intel Xeon Dual Core 2.8 GHz, 1GB RAM, (2 Cores)\n\nGPU: GeForce GTX 295, 1212 MHz, 895 MB VRAM, Compute 1.3\n\nOS: Window XP (32-bit)\n\nMATLAB Version: R2009b\n\nJacket Version: 1.2.2\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"606\">\n<tbody>\n<tr>\n<td width=\"96\" valign=\"top\">Phantom Dim</td>\n<td width=\"108\" valign=\"top\">Projections Dim</td>\n<td width=\"108\" valign=\"top\">\'iradon\' runtime (sec)</td>\n<td width=\"114\" valign=\"top\">\'giradon\' runtime\n\n(sec)</td>\n<td width=\"72\" valign=\"top\">Speed GPU vs CPU</td>\n<td width=\"108\" valign=\"top\">Error Norm (inf)</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">128x128</td>\n<td width=\"108\" valign=\"top\">185x180</td>\n<td width=\"108\" valign=\"top\">0.64</td>\n<td width=\"114\" valign=\"top\">0.98</td>\n<td width=\"72\" valign=\"top\">0.65</td>\n<td width=\"108\" valign=\"top\">1.77E-006</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">256x256</td>\n<td width=\"108\" valign=\"top\">367x180</td>\n<td width=\"108\" valign=\"top\">2.45</td>\n<td width=\"114\" valign=\"top\">0.91</td>\n<td width=\"72\" valign=\"top\">2.69</td>\n<td width=\"108\" valign=\"top\">3.35E-006</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">512x512</td>\n<td width=\"108\" valign=\"top\">729x180</td>\n<td width=\"108\" valign=\"top\">10.39</td>\n<td width=\"114\" valign=\"top\">0.97</td>\n<td width=\"72\" valign=\"top\">10.71</td>\n<td width=\"108\" valign=\"top\">6.82E-006</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">1024x1024</td>\n<td width=\"108\" valign=\"top\">1453x180</td>\n<td width=\"108\" valign=\"top\">41.46</td>\n<td width=\"114\" valign=\"top\">1.15</td>\n<td width=\"72\" valign=\"top\">36.05</td>\n<td width=\"108\" valign=\"top\">1.84E-005</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">2048x2048</td>\n<td width=\"108\" valign=\"top\">2901x180</td>\n<td width=\"108\" valign=\"top\">167.07</td>\n<td width=\"114\" valign=\"top\">1.69</td>\n<td width=\"72\" valign=\"top\">98.86</td>\n<td width=\"108\" valign=\"top\">3.12E-005</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\"></td>\n<td width=\"108\" valign=\"top\"></td>\n<td width=\"108\" valign=\"top\"></td>\n<td width=\"114\" valign=\"top\"></td>\n<td width=\"72\" valign=\"top\"></td>\n<td width=\"108\" valign=\"top\"></td>\n</tr>\n</tbody>\n</table>\nSystem 2:\n\nCPU: Intel(R) Dual Quad Core Xeon(R) CPUs W5580 @ 3.20GHz, 32GB RAM, (8 cores)\n\nGPU: Tesla C1060, 1265 MHz, 4095 MB VRAM, Compute 1.3\n\nOS: Linux Fedora 10 (32-bit)\n\nMATLAB Version: R2009b\n\nJacket Version: 1.2.2\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"606\">\n<tbody>\n<tr>\n<td width=\"96\" valign=\"top\">Phantom Dim</td>\n<td width=\"108\" valign=\"top\">Projections   Dim</td>\n<td width=\"108\" valign=\"top\">\'iradon\'   runtime (sec)</td>\n<td width=\"114\" valign=\"top\">\'giradon\' runtime\n\n(sec)</td>\n<td width=\"72\" valign=\"top\">Speed GPU vs   CPU</td>\n<td width=\"108\" valign=\"top\">Error Norm   (inf)</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">128x128</td>\n<td width=\"108\" valign=\"top\">185x180</td>\n<td width=\"108\" valign=\"top\">0.1</td>\n<td width=\"114\" valign=\"top\">0.4</td>\n<td width=\"72\" valign=\"top\">0.25</td>\n<td width=\"108\" valign=\"top\">1.77E-006</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">256x256</td>\n<td width=\"108\" valign=\"top\">367x180</td>\n<td width=\"108\" valign=\"top\">0.38</td>\n<td width=\"114\" valign=\"top\">0.41</td>\n<td width=\"72\" valign=\"top\">0.93</td>\n<td width=\"108\" valign=\"top\">3.35E-006</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">512x512</td>\n<td width=\"108\" valign=\"top\">729x180</td>\n<td width=\"108\" valign=\"top\">1.82</td>\n<td width=\"114\" valign=\"top\">0.43</td>\n<td width=\"72\" valign=\"top\">4.23</td>\n<td width=\"108\" valign=\"top\">6.82E-006</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">1024x1024</td>\n<td width=\"108\" valign=\"top\">1453x180</td>\n<td width=\"108\" valign=\"top\">8.35</td>\n<td width=\"114\" valign=\"top\">0.51</td>\n<td width=\"72\" valign=\"top\">16.37</td>\n<td width=\"108\" valign=\"top\">1.84E-005</td>\n</tr>\n<tr>\n<td width=\"96\" valign=\"top\">2048x2048</td>\n<td width=\"108\" valign=\"top\">2901x180</td>\n<td width=\"108\" valign=\"top\">38.14</td>\n<td width=\"114\" valign=\"top\">1.93</td>\n<td width=\"72\" valign=\"top\">19.76</td>\n<td width=\"108\" valign=\"top\">3.12E-005</td>\n</tr>\n</tbody>\n</table>\nThe “iradon” runtimes were run on the CPU where the “giradon” runtimes were leveraging the GPU.  Of course the title of this blog post was a little misleading as it is not true that 98X speed up was the case in every data size and every configuration as performance does vary in all applications based on code, data size, hardware and other factors.  In this case, an everyday laptop with a GeForce GPU can provide almost 100X performance improvement versus a garden variety Intel Core Duo 2.8 GHz processor for the right size data problem.  But even when you run on state of the art hardware, both CPU and GPU, and the data size is appropriate for the GPU architectures, it is not unusual to get 10 to 20X performance improvement.\n\nThere is actually a bigger story here than the performance improvements and speed up of this code!  It has to do with productivity.  This customer had already determined that they did not have the resources, knowledge and expertise to program CUDA to leverage the GPU resources.  Jacket provides a platform for engineers, scientists and analysts, that are familiar with MATLAB, to quickly (in this case, <strong>a couple of hours</strong>) make current applications and algorithms work on GPUs to achieve substantial performance gains, even when the latest and greatest hardware is not immediately at ones disposal.  Shortening the time to solution is one of the major value points for Jacket and should be considered even if an option to program in CUDA is available.\n\nPS – one more point to the story, email is great but today’s spam filters can really disrupt communication if alternative methods are not used in conjunction with our new way of life.','How long does it take to get 98X performance improvement with GPUs?','','publish','open','open','','how-long-does-it-take-to-get-98x-performance-improvement-with-gpus','','','2010-02-04 15:39:32','2010-02-04 22:39:32','',0,'http://www.accelereyes.com/blog/?p=103',0,'post','',2),(4589,1,'2010-02-10 15:39:06','2010-02-10 22:39:06','MATLAB® parallel for loops (parfor) allow the body of a for loop to be executed across multiple workers simultaneously, but with some pretty large restrictions.  With Jacket MGL, Jacket can be used within parfor loops, with the same restrictions.  However, it is important to note that Jacket MGL does not currently support co-distributed arrays.\n\n<span style=\"text-decoration: underline;\">Problem Size</span>\n\nProblem size might be the single most important consideration in parallelization using the Parallel Computing Toolbox (PCT) and Jacket MGL.  When data is used by a worker in the MATLAB pool it must be copied from MATLAB to the worker, and must be copied back when the computation is complete.  Additionally, when GPU data is used, it must then be copied by the worker to the GPU and back.  With small, simple problems, parallelization may not offer a performance improvement because of the overhead of this data movement.  Unfortunately, there is no simple answer to the question of \"What size problem justifies multi-gpu parallelization?\"  We have found that experimentation provides the best answer.\n\n<span style=\"text-decoration: underline;\">Array Slicing</span>\n\nOne of the ways to reduce the overheard of parallelization is to minimize the amount of data being copied.  This can be done through array slicing.  When an array is used with only a single variable dimension, the array can be \"sliced\" so that ONLY the relevant data is copied.  For example, with a 128x128 array, there would be 16,384 entries.  If the array were used by a worker with both dimensions being referenced with variables, the entire array must be copied.  When only a single dimension is used, MATLAB only needs to copy the elements that the worker could possible refer to.  In the example here, only 128 elements would need to be copied instead of 16,384.\n\n<span style=\"text-decoration: underline;\">for/gfor/parfor in parfor</span>\n\nIt\'s possible to use the various types of for loops embedded inside a parfor loop, but they cannot appear directly in the body of the loops.  Instead, they must be inside of a function called by a loop.  Here is a simple example:\n<pre lang=\"matlab\">parfor i=1:8\n  for j=1:8\n    m(i,j) = i*j;\n  end\nend\n</pre>\nThe above example fails because of transparency.  Other than the iterator variable of the parfor, MATLAB must be able to evaluate indices at the time the code is read, not at the time the code is executed.  We can fix this example by changing it to:\n<pre lang=\"matlab\">function x = f(n, i)\n  m = n;\n  j = [];\n  gfor j=1:8\n    m(j) = i*j;\n  gend\nend\n\nm = gones(8);\nparfor i=1:8\n  m(i,:) = f(m(i,:), i);\nend\n</pre>\n<span style=\"text-decoration: underline;\">parfor in a gfor</span>\n\nIt is not possible to use a parfor loop or an spmd command inside of a GFOR.\n\n<span style=\"text-decoration: underline;\">Variable Classification</span>\n\nInside of a parallel loop, MATLAB attempts to classify each variable.  The different classes are:\n\n- Temporary variable:  a variable created inside a single iteration whose lifespan is only that iteration\n\n- Reduction variable: a variable which accumulates an its value across all iterations, but whose value make be computed regardless of the order of execution of the iterations.\n\n- Broadcast variable: a variable declared outside of the loop and referenced in the loop, but whose value is not changed within the loop\n\n- Sliced variable: a variable whose elements are operated on by independent iterations of the loop\n\n- Loop variable: the iterator of the loop\n\nIf a variable cannot be classified into one of these categories, the loop will not be able to execute.  Further restrictions on the ways variables may be classified and used are explained in the Advanced Parfor Topics on The MathWorks web site at:\n\n<a href=\"http://www.mathworks.com/access/helpdesk/help/toolbox/distcomp/brdqtjj-1.html\">http://www.mathworks.com/access/helpdesk/help/toolbox/distcomp/brdqtjj-1.html</a>\n\n<span style=\"text-decoration: underline;\">Understanding Some of the Restrictions</span>\n\nThings that are not compatible with parallelization of for loops:\n\n- Loops may not contain spmd statements.\n\n- Loops may not contain global or persistent variable declarations.\n\n- Loops may not contain break or return statements\n\nFor more information about the MATLAB-imposed restrictions on parallel for loops, visit:\n\n<a href=\"http://www.mathworks.com/access/helpdesk/help/toolbox/distcomp/bq__cs7-1.html\">http://www.mathworks.com/access/helpdesk/help/toolbox/distcomp/bq__cs7-1.html</a>','Using Parallel For Loops (parfor) with MATLAB® and Jacket','','publish','open','open','','using-parallel-for-loops-parfor-with-matlab-and-jacket','','','2010-02-10 15:39:06','2010-02-10 22:39:06','',0,'http://www.accelereyes.com/blog/?p=128',0,'post','',3),(4604,6,'2013-12-20 17:15:32','2013-12-20 21:15:32','<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/arrayfire_logo_whitebkgnd.png\"><img class=\"aligncenter size-medium wp-image-4605\" alt=\"arrayfire_logo_whitebkgnd\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/arrayfire_logo_whitebkgnd-300x42.png\" width=\"300\" height=\"42\" /></a> We are thrilled to announce the official release ArrayFire v2.0, our biggest and best product ever!\r\n<p style=\"text-align: justify;\">ArrayFire v2.0 adds full commercial support for OpenCL devices including all AMD APUs and AMD FireProTM graphics, CUDA GPUs from NVIDIA, and other OpenCL devices from Imagination, Freescale, ARM, Intel, and Apple.</p>\r\n\r\n<div>\r\n<p style=\"text-align: justify;\">ArrayFire is a CUDA and OpenCL library designed for maximum speed without the hassle of writing time-consuming CUDA and OpenCL device code.  With ArrayFire’s library functions, developers can maximize productivity and performance. Each of ArrayFire’s functions has been hand-tuned by CUDA and OpenCL experts.</p>\r\n\r\n<strong>Announcing ArrayFire for OpenCL</strong>\r\n<div>\r\n<ul>\r\n	<li>Support for all of ArrayFire\'s function library (with a few exceptions)</li>\r\n	<li>Same API as ArrayFire for CUDA enabling seamless interoperability</li>\r\n	<li>Just-In-Time (JIT) compilation of kernels for top performance</li>\r\n	<li>Specific tuning for Intel Xeon Phi coprocessors</li>\r\n	<li>Accelerated algorithms for image processing, signal processing, visualization, and more</li>\r\n</ul>\r\n<strong>Updates to ArrayFire for CUDA</strong>\r\n<div>\r\n<ul>\r\n	<li>New signal and image processing functions</li>\r\n	<li>Faster transpose and matrix multiplication</li>\r\n	<li>Enhanced debugging support for GDB and Visual Studio</li>\r\n	<li>Better examples and documentation</li>\r\n</ul>\r\n<p style=\"text-align: justify;\">Maybe the upgrade you wanted isn\'t mentioned here. Don\'t despair! Check out our <a href=\"http://www.accelereyes.com/arrayfire/c/releasenotes.htm\">release notes</a>, as well as our new and improved <a href=\"http://www.accelereyes.com/arrayfire/c/\">documentation</a>, for a complete list of the many ArrayFire v2.0 enhancements available.</p>\r\n<p style=\"text-align: justify;\">To learn more about which licensing option would be the best for your needs, visit our ArrayFire <a href=\"http://www.accelereyes.com/products/arrayfire_licensing\">licensing page</a>.</p>\r\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.5em;\">Just getting started with GPU computing? Need an extra hand on a project? Tap into our deep parallel computing expertise and vast code base by setting up a free <a href=\"http://www.meetme.so/accelereyes\">technical consultation</a> today.</span><span style=\"line-height: 1.5em;\"> </span></p>\r\n\r\n</div>\r\n<div>\r\n<p style=\"text-align: justify;\">We\'re always looking to make ArrayFire even better—let us know your thoughts through this short <a href=\"https://www.surveymonkey.com/s/arrayfire-new-feature\">survey</a>. We promise it\'ll be worth your while!</p>\r\n\r\nStay tuned for more exciting news from the ArrayFire gang coming soon...</div>\r\n</div>\r\n</div>','ArrayFire v2.0 Official Release','','publish','open','open','','arrayfire-v2-0-official-release','','','2014-01-28 16:16:38','2014-01-28 16:16:38','',0,'http://blog.accelereyes.com/blog/?p=4604',0,'post','',1),(4649,11,'2014-01-07 18:09:02','2014-01-07 18:09:02','A lot of ArrayFire users have been interested in the usage of ArrayFire in partnership with OpenGL for graphics computation. In the long run, we do plan to expand further on the interoperablilty and make it easier through ArrayFire. For now, we have developed a small example to expand on the usage of the CUDA-OpenGL interop API to assist in the interop operations between ArrayFire and OpenGL.\r\n\r\nSome of the advantage of direct ArrayFire-OpenGL interop are:\r\n<ul>\r\n	<li><strong>Faster data transfers</strong>: Since the OpenGL buffers as well as ArrayFire data reside on the GPU, we can use a direct device to device copy rather than using the CPU as an intermediate and the relatively slow PCIe interface.</li>\r\n	<li><strong>Offscreen rendering</strong>: It is commonly known that rendering to screen is a slow process. Using the API shown in this example, we can render directly of off screen framebuffers and retrieve the data in ArrayFire.</li>\r\n	<li><strong>Transform feedback</strong>: This example also shows the usage of Transform feedback buffers in OpenGL. Transform feedback buffers allow the user to retrieve data from in-between the rendering pipeline, for example getting back the transformed vertices after the operations in vertex shaders.</li>\r\n</ul>\r\nSince a lot of data transfers to CPU are eliminated, we can do a lot more processing faster.\r\n\r\nLet us now discuss the example. This example is relatively simple and renders a single triangle.\r\n<h2>Code Walkthrough</h2>\r\nThe code for this example can be found at our <a href=\"https://github.com/arrayfire/ArrayFire-OpenGL-Interop\">github page</a>.\r\n\r\nThe code relies upon the following libraries:\r\n<ul>\r\n	<li>ArrayFire 2.0</li>\r\n	<li>CUDA-OpenGL Interop (CUDA 5.5)</li>\r\n	<li>GLFW 3</li>\r\n	<li>GLEW (1.x, latest version recommended)</li>\r\n</ul>\r\nLet us walk through the example step by step. Please note that any steps that do not contribute to the interop and are just common OpenGL code will not be covered in this blog.\r\n<h3>Initialization</h3>\r\n<pre>int device = argc &gt; 1? atoi(argv[1]):0;\r\naf::deviceset(device);\r\naf::info();\r\n\r\nint width = 400, height = 300, channels = 4;\r\nint num_triangles = 1, num_vertices = 3;\r\n\r\narray af_indices = array(3, indices);\r\narray af_vertices = array(3, num_vertices, vertices);	//3 floats per vertex, 3 vertices\r\narray af_colors = array(3, num_vertices, colors);		//3 floats per color, 3 colors\r\narray af_image = constant(0.0, height, width, channels);\r\narray pkd_image = constant(0.0, channels, width, height);\r\narray af_project = constant(-1.0, 3, num_vertices);</pre>\r\nThis section initializes ArrayFire and create arrays for the basic data structure. Since ArrayFire stores data as column major, we decided that the arrays will have each vertex as one column, ie. if you had an array of 10 vertices with 3 coordinates each, then your array would have dimensions 3x10.\r\n\r\nMost of the array names are self explanatory. <em>pkd_image</em> is used to store the packed image data returned by OpenGL through the framebuffer. <em>af_image</em> is used to store the returned image in the ArrayFire format (unpacked). <em>af_project</em> stores the result of the projection returned after the vertex shader stage (using transform feedback). The size of project is same as the vertex buffer.\r\n<pre>bool onscreen = true;			//Change to false for offscreen renderering\r\ninit_glfw(width, height, channels, onscreen);</pre>\r\nThe <strong>onscreen</strong> flag is a useful one. When it is set to true, the render happens on the GLFW window. Although not a part of the code, it is possible to retrieve the rendered image back into ArrayFire. However, turning this flag to false results in offscreen rendering. This means rendering is done directly to a software framebuffer rather than to the screen, hence it is faster. It also allows the rendered image to be retrieved back into ArrayFire. If you wish to display this image then the ArrayFire image() function can be used (will be discussed a little later).\r\n\r\ninit_glfw is used to initialize the GLFW and GLEW context.\r\n<h3>Initialize Buffers</h3>\r\n<pre>GLuint vertex_b = 0;\r\ncudaGraphicsResource_t vertex_cuda;\r\ncreate_buffer(vertex_b, GL_ARRAY_BUFFER, &amp;vertex_cuda, 3 * num_vertices * sizeof(float), GL_DYNAMIC_DRAW);</pre>\r\nThese lines are an abstraction to create the OpenGL buffers and bind them to their respective CUDA Graphics Resource object.\r\n<pre>void create_buffer(GLuint&amp; buffer, GLenum buffer_target, cudaGraphicsResource_t* cuda_resource, const unsigned size, GLenum buffer_usage, const void* data = NULL)\r\n{\r\n    glGenBuffers(1, &amp;buffer);\r\n    glBindBuffer(buffer_target, buffer);\r\n    glBufferData(buffer_target, size, data, buffer_usage);\r\n    CUDA(cudaGraphicsGLRegisterBuffer(cuda_resource, buffer, cudaGraphicsRegisterFlagsNone));\r\n    glBindBuffer(buffer_target, 0);\r\n}</pre>\r\nThis section of code shows the creation and registering of the OpenGL buffer with CUDA. The buffer generation and bindings are done exactly as in regular OpenGL. The <em>cudaGraphicsGLRegisterBuffer</em> registers the buffer with CUDA. If using a texture or renderbuffer or the like, then use <em>cudaGraphicsGLRegisterImage</em>.\r\n<pre>// Render Buffer\r\nGLuint render_b = 0;\r\ncudaGraphicsResource_t render_cuda;\r\ncreate_buffer(render_b, GL_RGBA32F, width, height, &amp;render_cuda);\r\n\r\n// Depth Buffer - for off screen rendering\r\nGLuint depth_b = 0;\r\ncreate_buffer(depth_b, GL_DEPTH_COMPONENT, width, height);</pre>\r\nIn the code above, the framebuffer and depthbuffer are initialized which can now be used for off screen rendering.\r\n<h3>Framebuffer, Transform Feedback and Shader Loading</h3>\r\n<pre>//Required for framebuffer copy\r\nGLuint frame_b = 0;\r\nbind_framebuffer(render_b, depth_b, frame_b);\r\n\r\n// Initialize shaders\r\ninit_program(\"shader.vert\", \"shader.frag\");\r\n\r\n// Initialize transform feedback\r\ninit_projection(transform_b, project_b);</pre>\r\nThis section of the code is used to initialize depth and framebuffers for off screen rendering.  It also loads and compiles the shaders and initializes the transform feedback buffers.\r\n<h3>Render Loop</h3>\r\n<pre>while(!glfwWindowShouldClose(window))</pre>\r\nGLFW allows the user to control to render loop. So we use a simple while loop with a GLFW terminating condition.\r\n<h3>Copy Data to OpenGL Buffers</h3>\r\n<pre>float* d_vertices = af_vertices.device&lt;float&gt;();\r\ncopy_from_device_pointer(vertex_cuda,\r\n			 d_vertices,\r\n			 GL_ARRAY_BUFFER,\r\n			 3 * num_vertices * sizeof(float));</pre>\r\nIn the render loop, we first copy the vertex and color data to their respective OpenGL buffers. In the copy_from_device_pointer function, we have:\r\n<pre>template&lt;typename T&gt;\r\nvoid copy_from_device_pointer(cudaGraphicsResource_t cuda_resource,\r\n                              T&amp; d_ptr,\r\n                              GLuint buffer_target,\r\n                              const unsigned size)\r\n{\r\n    CUDA(cudaGraphicsMapResources(1, &amp;cuda_resource));\r\n    bool is_mapped = true;\r\n    if (buffer_target == GL_RENDERBUFFER) {\r\n        cudaArray* array_ptr = NULL;\r\n        CUDA(cudaGraphicsSubResourceGetMappedArray(&amp;array_ptr, cuda_resource, 0, 0));\r\n        CUDA(cudaMemcpyToArray(array_ptr, 0, 0, d_ptr, size, cudaMemcpyDeviceToDevice));\r\n    } else {\r\n        T* opengl_ptr = NULL;\r\n        CUDA(cudaGraphicsResourceGetMappedPointer((void**)&amp;opengl_ptr, (size_t*)&amp;size, cuda_resource));\r\n        CUDA(cudaMemcpy(opengl_ptr, d_ptr, size, cudaMemcpyDeviceToDevice));\r\n    }\r\n    unmap_resource(cuda_resource, is_mapped);\r\n}</pre>\r\nIn this function, we first \"map\" the cuda resource of the buffer using the <a title=\"cudaGraphicsMapResources\" href=\"http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__INTEROP.html#group__CUDART__INTEROP_1gb7064fb72e54d89d0666e192b45d35cc\" target=\"_blank\">cudaGraphicsMapResources</a> function, ie. enable the buffer for access by CUDA. This allows CUDA to copy memory to and from the buffer. Once completed, we must unmap the resources.\r\n<h3>Other Memory Copying Notes</h3>\r\nIf using a renderbuffer or texture, the memory needs to be copied using CUDA textures of cudaArrays and then using the cudaMemcpy(To/From)Array function. If using other buffers like GL_ARRAY_BUFFER, we can simply get the pointer using the <a title=\"cudaGraphicsResourceGetMappedPointer\" href=\"http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__INTEROP.html#group__CUDART__INTEROP_1ge7f893864a3d38a630e71a99f5a4e17f\" target=\"_blank\">cudaGraphicsResourceGetMappedPointer</a> function and then copy it using the cudaMemcpyDeviceToDevice flag.\r\n\r\nCopying from OpenGL buffers to CUDA is also done in the same way. See the copy_to_device_pointer() function in the code.\r\n\r\nIn the code that follows the memory copies, we call the render function which renders the data to screen or framebuffer. It uses relatively well know OpenGL calls and hence I will not be covering it in the blog. Any questions can be asked on the <a title=\"ArrayFire Forums\" href=\"http://forums.accelereyes.com/forums/viewforum.php?f=17\" target=\"_blank\">ArrayFire forums</a>. Once the rendering is complete, we copy the transform feedback memory and the framebuffer memory back to ArrayFire.\r\n\r\n<span style=\"line-height: 1.5em;\">On exit, delete the buffers and exit.</span>\r\n<h2>Compile and Run</h2>\r\n<h3>Linux</h3>\r\nOn Linux, the Makefile is provided. In the Makefile, please update the paths to ArrayFire (AF_PATH), CUDA and GLFW (GLFW_LIB_PATH).\r\n\r\nAs is, the makefile assumes that CUDA, GLFW and GLEW is installed in the default locations.\r\n\r\nTo compile and run:\r\n<pre>$make\r\n$./cugl_interop</pre>\r\n<h3>Windows</h3>\r\nOn Windows, you can create a CUDA project in Visual Studio. Then add the locations of the include and library directories of ArrayFire, GLFW and GLEW in the project properties. The code is OS-independent and should run without any modifications.\r\n<h2>Output</h2>\r\nThe output, in case of onscreen rendering should be a rotating triangle. A sample screenshot is shown below.\r\n\r\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2014/01/ArrayFire-CUDA-OpenGL-Interop.png\"><img class=\"size-medium wp-image-4675 aligncenter\" alt=\"ArrayFire CUDA OpenGL Interop\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2014/01/ArrayFire-CUDA-OpenGL-Interop-279x300.png\" width=\"279\" height=\"300\" /></a>\r\n\r\nHere are some useful resources to look up:\r\n<ul>\r\n	<li><a href=\"http://3dgep.com/?p=2082\">OpenGL Interoperability with CUDA by Jeremiah van Oosten</a></li>\r\n	<li><a href=\"http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#graphics-interoperability\">CUDA Graphics Interoperability (Programming Guide)</a></li>\r\n	<li><a href=\"http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__INTEROP.html#group__CUDART__INTEROP\">CUDA Runtime Graphics Interop API</a></li>\r\n	<li><a href=\"http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__OPENGL.html#group__CUDART__OPENGL\">CUDA Runtime OpenGL Interop API</a></li>\r\n</ul>\r\nPlease feel free to ask any questions about this interop example on the <a title=\"ArrayFire Forums\" href=\"http://forums.accelereyes.com/forums/viewforum.php?f=17\" target=\"_blank\">ArrayFire forums</a>. We are working on a larger, more extensible interop code that we will release upon request.\r\n\r\n<span style=\"line-height: 1.5em;\"><strong>Known issues:</strong> The ArrayFire graphics API is known to not work as intended when using external OpenGL context. It is advised that visualizations be limited. If they still do not work, the <em>saveimage</em> function can be a fallback, albeit a last resort fallback.</span>\r\n\r\n<strong>Github Link</strong>: <a href=\"https://github.com/arrayfire/ArrayFire-OpenGL-Interop\">https://github.com/arrayfire/ArrayFire-OpenGL-Interop</a>','ArrayFire-OpenGL Interop using CUDA','','publish','open','open','','arrayfire-opengl-interop-using-cuda','','','2016-03-25 15:03:41','2016-03-25 19:03:41','',0,'http://blog.accelereyes.com/blog/?p=4649',0,'post','',0),(4685,6,'2014-05-12 17:47:23','2014-05-12 17:47:23','We get questions all the time about how to make GPU hardware decisions. We\'ve seen just about every scenario you can imagine, and so we always jump at the chance to help others through this decision process.\r\n\r\n<span style=\"line-height: 1.5em;\">Here\'s a recent question from a customer.</span>\r\n\r\n<em>\"I\'ve just found your post on Analytic Bridge and have taken a look at your website ... I\'m replacing my two Tesla M1060 cards (computing capability too low) and I\'m considering used Tesla M2070s or the new GTX 760 cards. Could you offer any insight? I believe the GTX 760 cards may well outperform the older 2070s and are much cheaper.\"</em>\r\n\r\nAnd here\'s our response.\r\n\r\n<em>\"The GTX 760 will probably outperform the M2070 for single precision FLOPS but not for double precision, if that matters to you. Not sure what your budget is, but there are other GeForce GPUs that are a lot cheaper than Tesla that have a control panel option to sacrifice clocks for higher double precision throughput (see GeForce GTX Titan).\"</em>\r\n\r\nWe\'ve found that there\'s a lot of confusion out there regarding what\'s the best compute hardware for people who are restricted within a certain price range. A few key takeaways should be considered when trying to make the best GPU hardware decision. Here are some best practices you should consider.\r\n\r\n1) Do you want a reliable GPU that does fast double precision calculations? Choose the Tesla K20, or the K40.\r\n\r\n2) Do you want a reliable GPU that does fast single precision calculations? Tesla K10 is for you.\r\n\r\n3) Are you doing a lot of visualization or video rendering along with compute? Choose the Quadro line.\r\n\r\n4) Are you an enthusiast or not worried about double precision and ECC memory? Buy a GTX GPU within your budget.\r\n\r\nIf you are working with OpenCL, then AMD, Intel, and other devices come into the fray as well. We will talk about that another day!\r\n\r\nDo you have any questions about GPUs? <a href=\"http://sandbox.arrayfire.com/company/#contact\">Contact us</a>!','How to Make GPU Hardware Decisions','','publish','open','open','','how-to-make-gpu-hardware-decisions','','','2014-05-12 17:49:37','2014-05-12 17:49:37','',0,'http://blog.accelereyes.com/blog/?p=4685',0,'post','',0),(4690,4,'2014-01-20 23:55:12','0000-00-00 00:00:00','<blockquote>\"The library approach is the simplest and works by calling functions in a library that has been accelerated by someone else. Many of the latest math libraries belong to this category. As long as most of the computation takes place inside the library code, this approach is very successful. It allows a few expert library writers to enable the acceleration of a large number of applications.\" -http://www.hpcwire.com/2014/01/09/future-accelerator-programming/</blockquote>\nSince it is trivial to use, programmers will employ the library approach whenever possible. However, this hinges on the availability of appropriate library functions, which are easy to provide in well-defined and mature domains such as standard matrix operations (BLAS) but hard to do for emerging areas or unstructured computations.','Library Approach','','draft','open','open','','','','','2014-01-20 23:55:12','0000-00-00 00:00:00','',0,'http://blog.accelereyes.com/blog/?p=4690',0,'post','',0),(4691,1,'2010-02-20 22:42:28','2010-02-21 05:42:28','Jimi Malcolm, VP of Engineering and Co-founder of <a href=\"http://www.accelereyes.com\" target=\"_blank\">AccelerEyes</a> takes about 15 minutes to share CUDA optimization strategies to maximize performance of CUDA code.  Watch the video below to find out what needs to go into strategizing CUDA development to maximize performance.  Jimi uses Median Filtering for this case study.\n<script src=\"http://www.accelereyes.com/flash/swfobject.js\" type=\"text/javascript\"></script>\n\n<div id=\"player01\"><a href=\"http://www.macromedia.com/go/getflashplayer\">Get the Flash Player</a> to see this player.</div>\n\n<script type=\"text/javascript\">// <![CDATA[\n         var so01 = new         SWFObject(\'http://www.accelereyes.com/flash/player.swf\',\'mpl01\',\'576\',\'432\',\'9\');         so01.addParam(\'allowscriptaccess\',\'always\');         so01.addParam(\'allowfullscreen\',\'true\');         so01.addParam(\'flashvars\',\'&#038;file=http://www.accelereyes.com/content/videos/CUDAOptimizationStudy/CUDAOptimizationStudy.mp4&#038;image=http://www.accelereyes.com/content/videos/CUDAOptimizationStudy/FirstFrame.png&#038;backcolor=FFC40E&#038;controlbar=over&#038;mute=false&#038;buffer=20\');         so01.write(\'player01\');\n// ]]></script>','A case study in CUDA optimization','','publish','open','open','','a-case-study-in-cuda-optimization','','','2010-02-20 22:42:28','2010-02-21 05:42:28','',0,'http://www.accelereyes.com/blog/?p=167',0,'post','',4),(4692,18132,'2010-03-01 10:45:18','2010-03-01 17:45:18','For computer vision, we\'ve found that efficient implementations require a new data access pattern that MATLAB does not currently support.  MATLAB and the M language is great for linear algebra where blocks of matrices are the typical access pattern, but not for Computer Vision where algorithms typically operate on patches of imagery. For instance, to pull out patches of imagery in M, one must do a double nested for loop,\n<pre lang=\"matlab\">A = rand(100,100)\nfor xs = -W:W\n  for ys = -W:W\n    patch(xs+W+1, ys+W+1) = A(xs+1+x, ys+1+y);\n  end\nend</pre>\n...with guards for boundary conditions, etc. It gets even more complicated with non-square patches. On top of that, these implementations don\'t translate to the GPUs memory hierarchy at all and are thus slow.\n\nTherefore, we have implemented a command called windows,\n<pre lang=\"matlab\">B = windows(A, x, y, z, w, T);</pre>\nwhose purpose is to pull a large number of sparse (as opposed to sliding) windows out of A at the locations x, y, z with sizes radii w, and affine transforms T that can then be computed over. The command <code>windows</code> signals to Jacket that we\'re doing a patched access pattern that can then be optimized on the GPU.\n\nThis alleviates some of the problems MATLAB has with implementing computer vision algorithms in general - - typically lots of mex files are written to handle these problems.\n\nIn the future, windows can possibly also be lazy. So,\n<pre lang=\"matlab\">hist(windows(...));</pre>\nwould be intelligent and hist would use a windowed access pattern to compute many histograms in patches over an image. The implementations of NLFILTER and COLFILTER would also imply a particular memory access pattern that Jacket can optimize for.\n\nWe\'re hoping that such developments will lead to efficient implementations of common image patch reliant computer vision algorithms like KLT, SIFT, Mean-Shift etc in MATLAB without having to develop a tightly knit, hard to understand batch of C and CUDA.','Accelerate Computer Vision Data Access Patterns with Jacket & GPUs','','publish','open','open','','computer_vision','','','2010-03-01 10:45:18','2010-03-01 17:45:18','',0,'http://www.accelereyes.com/blog/?p=175',0,'post','',0),(4693,4,'2010-03-08 15:21:36','2010-03-08 22:21:36','For those of you interested in neuroscience and neuroimaging, you have probably heard of a software capability called SPM or Statistical Parametric Mapping developed by a group at University College London.  Well, a group at Georgia Tech has been doing some work with Jacket and CUDA on SPM and have produced some initial results that show some promise.  Being able to speed up the image analysis of functional MRI can benefit the medical community in a big way.  AccelerEyes has been supporting these efforts at Georgia Tech and with the permission of the authors we have produced an initial look at their work.  Enjoy.\n\n<a href=\"http://www.accelereyes.com/resources/spm-fmri\">http://www.accelereyes.com/resources/spm-fmri</a>','Jacket and GPUs show promise in Neuroscience with fMRI and SPM','','publish','open','open','','jacketwithfmrispm','','','2010-03-08 15:21:36','2010-03-08 22:21:36','',0,'http://www.accelereyes.com/blog/?p=203',0,'post','',0),(4694,4,'2010-03-17 12:21:26','2010-03-17 19:21:26','I have had a number of exchanges with the head of quantitative tools at the trading desk of one of the largest banks in Spain whose private banking subsidiary is considered one of the best boutique private banks.  He is an enthusiast for getting indistinguishably close to the right answer very fast, so enjoys thinking about all sorts of optimization that could be done with his codes. He is confident that the area of greatest potential these days is figuring out how to squeeze out all the flops that come with <strong><a href=\"http://www.nvidia.com/object/tesla_computing_solutions.html\" target=\"_blank\">GPUs</a></strong>. This is why he has shown interest in <strong><a href=\"http://www.accelereyes.com/\">AccelerEyes</a></strong> and <strong><a href=\"http://www.accelereyes.com/products/jacket\" target=\"_blank\">Jacket</a></strong>.\n\nSince he joined the bank, they have modernized all the pricing and marketing tools that were hard to maintain and evolve (scattered Excel files). As a central part of that strategy they now have 10,000s of lines of MATLAB® code, and another 10,000s of lines of java - swing front ends. The choice of technology was simple: they wanted to use things that <strong>\"just work\"</strong> and were willing to pay a bit of a performance price for it. Everyday there is a new trade idea, so to the bank, having a product out the door in hours, is a lot more valuable than having a really fast pricer that took one month to implement in c++ but has no usable interface. Truth be told, at the bank they don\'t make money from having fast codes, they make money by being proactive in offering trade ideas to their customers which lead to deals being made.\n\nHe has a good idea of how Jacket works at the high level, he also understands the <a href=\"http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_oop/brdqi79.html\" target=\"_blank\">\"magic\" of MATLAB objects</a> and how they are used to map GPU matrices. That said, going from there to something that \"just works\", like Jacket, is a significant achievement in his opinion, and is something many people would want to have access to.\n\nEase of use when leveraging GPUs and writing for-loops that fully capitalize on GPU computational horsepower are key ingredients to maximizing results in the bank. Having the ability to link to or call GPU libraries from MATLAB and toolboxes like financial, derivatives, fixed income, and econometrics does add some performance value – but a more holistic approach with GPU computing would deliver more significant results.  This more holistic approach incorporates what Jacket calls <strong><a href=\"http://blog.accelereyes.com/blog/2010/02/09/109/\">lazy execution</a></strong>. Jacket waits to actually execute anything on the GPU until the right time-- it batches things up, does some intermediate representations, manipulations, and optimizations.  It is this lazy execution strategy that is a key feature, according to this head of quantitative tools. It hides latency and it allows for many smart optimizations. Given that the GHz wars are over, he thinks that going forward the only real way to get performance will be from being smart about what your hardware does and what you want to solve. End users most likely won\'t know or find it worthwhile to know, so the task is left for the language / compiler experts to figure out – which is what AccelerEyes is doing.\n\nSpeaking of hardware, another key ingredient to the picture around GPU computing is that hardware is relatively inexpensive compared to CPU solutions that deliver similar performance.  Any organization, large or small, can get their hands on a <a href=\"http://www.microway.com/whisperstation/whisperstation-jacket.html\" target=\"_blank\">CUDA capable workstation</a> and start getting high performance results without having to set up a cluster solution of CPUs which is much harder and requires the resources and skills of IT in order to get to production quickly.  This is a show stopper in production environments where rapid results mean the difference between making a deal or not.\n\nHe thinks that financial services firms should pay most attention to the following areas as it relates to GPU computing:\n<ul>\n	<li>Trade signal generation</li>\n	<li>Brute force complex derivative pricing</li>\n	<li>Evaluating risk scenarios</li>\n	<li>Signal processing of real time feeds</li>\n</ul>\nAccelerEyes is paying close attention to these areas and works closely with customers looking to solve these types of problems with GPUs.  As more information is provided by our customers and we can get customers to share results, we will.','GPUs in quantitative analytics and finance','','publish','open','open','','quantitative-gpu','','','2010-03-17 12:21:26','2010-03-17 19:21:26','',0,'http://blog.accelereyes.com/blog/?p=215',0,'post','',0),(4695,4,'2010-04-27 11:36:39','2010-04-27 18:36:39','Learn how Jacket, GPUs, and MATLAB can deliver magnitudes of performance improvement over CPU-based solutions for Power flow studies.  AccelerEyes, in collaboration with the Indian Institute of Technology in Roorkee, has developed this case study to illustrate the ability to study power flow models on graphics processing units using Jacket and MATLAB.  Implementation on the GPU is 35 times faster than CPU alternatives.\n\n<a href=\"http://www.accelereyes.com/resources/powerflow\">http://www.accelereyes.com/resources/powerflow</a>','Power Flow with Jacket & MATLAB on the GPU!','','publish','open','open','','power-flow-jacket-matlab-gpu','','','2010-04-27 11:36:39','2010-04-27 18:36:39','',0,'http://blog.accelereyes.com/blog/?p=303',0,'post','',0),(4696,1,'2010-05-10 12:34:39','2010-05-10 19:34:39','In December of 2008, we did a blog post answering questions from customers and prospects about the use of OpenCL for Jacket.  If you have not reviewed that blog post to gain some insight into our progress you can access it here - <a href=\"../2008/12/30/opencl/\">http://blog.accelereyes.com/blog/2008/12/30/opencl/</a>.\n\nSome things have changed since that original post.  For example, NVIDIA now provides an OpenCL driver, toolkit, programming guide, and SDK examples.  Given the new tools available and the new Fermi hardware, we ran some tests on the <a href=\"http://www.nvidia.com/object/product_tesla_C2050_C2070_us.html\" target=\"_blank\">Tesla c2050</a> to compare OpenCL performance to CUDA performance.  The Tesla C2050 is an amazing beast of a card, providing upto 512 Gigaflops of double precision arithmetic (at peak).\n\nBefore we present the benchmarks, we should comment on the programmability of OpenCL versus CUDA.  OpenCL is notably more difficult to program and debug than CUDA since OpenCL documentation, tools, and scientific   computation libraries are still very limited.  Considering these handicaps, only a few matrix / vector operations were considered for this benchmark.  All the vector operations are modified versions of the SDK examples provided by NVIDIA.  All the tests were for single precision numbers.\n\nHere are the results:\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/MatrixMultiply.png\"><img class=\"alignnone size-large wp-image-331\" title=\"MatrixMultiply\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/MatrixMultiply-683x1024.png\" alt=\"MatrixMultipleFermi\" width=\"546\" height=\"819\" /></a>\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/DotProduct.jpg\"><img class=\"alignnone size-large wp-image-333\" title=\"DotProduct\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/DotProduct-660x1024.jpg\" alt=\"\" width=\"528\" height=\"819\" /></a>\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/Transpose.jpg\"><img class=\"alignnone size-large wp-image-335\" title=\"Transpose\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/Transpose-683x1024.jpg\" alt=\"\" width=\"546\" height=\"819\" /></a>\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/VectorAdd.jpg\"><img class=\"alignnone size-large wp-image-336\" title=\"VectorAdd\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/VectorAdd-660x1024.jpg\" alt=\"VectorAddFermiCUDAOpenCL\" width=\"528\" height=\"819\" /></a>\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/reductions.jpg\"><img class=\"alignnone size-large wp-image-337\" title=\"reductions\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/05/reductions-1024x739.jpg\" alt=\"reductionsfermicudaopencl\" width=\"737\" height=\"532\" /></a>\n\nThe results indicate that there is an overhead when using OpenCL with smaller data sizes, which seems to disappear at larger data sizes. Currently it is unknown whether the overhead is due to the time taken to launch a kernel in OpenCL or something else within the API.\n\nThis is our report of the current status of OpenCL relative to CUDA on the new NVIDIA hardware.  We continue to watch the progress of OpenCL, ATI, and other GPU  computing initiatives.  Our focus is to deliver the best GPU computing  platform on the planet for engineers, scientists, analysts, and  students, and we guarantee that  <a href=\"http://www.accelereyes.com/products/jacket\">Jacket</a> customers will always have the very best in GPU hardware choices  for your applications.  As the GPU landscape continues to evolve, your Jacket code will simply get faster without you having to do anything new.  So, we invite you to sit back, relax, and enjoy watching your Jacket code scale with each new release!\n\n<strong>Useful links:</strong>\n\n1)  <a href=\"http://www.anandtech.com/show/2977/nvidia-s-geforce-gtx-480-and-gtx-470-6-months-late-was-it-worth-the-wait-/6\">http://www.anandtech.com/show/2977/nvidia-s-geforce-gtx-480-and-gtx-470-6-months-late-was-it-worth-the-wait-/6</a>\n\n2)  <a href=\"http://www.pcgameshardware.com/aid,743498/Geforce-GTX-480-and-GTX-470-reviewed-Fermi-performance-benchmarks/Reviews/\">http://www.pcgameshardware.com/aid,743498/Geforce-GTX-480-and-GTX-470-reviewed-Fermi-performance-benchmarks/Reviews/</a>\n\n3) <a href=\"http://www.appleinsider.com/articles/08/12/10/nvidia_pioneering_opencl_support_on_top_of_cuda.html\">http://www.appleinsider.com/articles/08/12/10/nvidia_pioneering_opencl_support_on_top_of_cuda.html</a>\n\n4)  http://www.sisoftware.co.uk/?d=qa&amp;f=gpu_opencl&amp;a=AMD\n\n5)  <a href=\"http://unigine.blogspot.com/2010/02/cuda-vs-opencl-vs-directcompute.html\">http://unigine.blogspot.com/2010/02/cuda-vs-opencl-vs-directcompute.html</a>','NVIDIA Fermi with CUDA and OpenCL','','publish','open','open','','nvidia-fermi-cuda-and-opencl','','','2010-05-10 12:34:39','2010-05-10 19:34:39','',0,'http://blog.accelereyes.com/blog/?p=327',0,'post','',1),(4697,4,'2010-05-28 12:34:48','2010-05-28 19:34:48','With <a href=\"http://blogs.nvidia.com/ntersect/2010/05/ibm-embraces-gpus-for-high-performance-computing.html\" target=\"_blank\">IBM’s decision</a> this week to integrate Tesla technology into it’s high performance computing line, there should be no doubt that GP-GPU computing is more than a fad, organizations solving technical problems are able to do them more productively and efficiently than ever before with GPUs.  AccelerEyes’ customers are experiencing this first hand with the Jacket product family as they are able to quickly and easily implement new or existing algorithms for GPUs and accomplish their technical needs much faster with substantial speed improvements.\n\nCase in point, this week, AccelerEyes has released two case studies from customers that have used Jacket to transform their applications to GPU Computing with compelling results.\n<blockquote>System Planning Corporation has implemented two different radar processing applications for the GPU with Jacket that have provided the insight they needed to fully understand how GPUs can benefit their customer requirements.  Learn more about these applications:\n\n<a href=\"http://www.accelereyes.com/resources/radarprocessing\">http://www.accelereyes.com/resources/radarprocessing</a>\n\n<a href=\"http://www.accelereyes.com/resources/radarformation\">http://www.accelereyes.com/resources/radarformation</a></blockquote>\n<blockquote>The <a href=\"http://spectraldiagnosis.com/LabSpecDiag.html\" target=\"_blank\">Laboratory for Spectral Diagnosis</a> at Northeastern University, under the leadership of Professor Max Diem, has a research focus on spectral diagnosis of disease and have leverage Jacket and GPUs to accelerate their research while also accelerating the time it takes to identify cancer and other illnesses.  Learn more at <a href=\"http://www.accelereyes.com/resources/spectroscopy\">http://www.accelereyes.com/resources/spectroscopy</a></blockquote>\nJacket and NVIDIA GPUs continue to address and accelerate a growing list of science, engineering and analytical applications.  Additional case studies of application using Jacket can be found at <a href=\"http://www.accelereyes.com/successstories\">http://www.accelereyes.com/successstories</a>','Jacket accelerating life science and defense applications','','publish','open','open','','jacket-bioscience-defense-gpgpu','','','2010-05-28 12:34:48','2010-05-28 19:34:48','',0,'http://blog.accelereyes.com/blog/?p=356',0,'post','',0),(4698,1,'2010-06-24 08:17:00','2010-06-24 15:17:00','<strong>AccelerEyes</strong> is focused on not only providing the most easy to use GPU programming platform for CUDA capable GPUs by leveraging the MATLAB® language, our engineering organization is always looking for ways to improve the performance of all areas in the Jacket platform. A case in point is some recent work with <em>matrix multiplication</em>, specifically (Single General Matrix Multiply) SGEMM, or <a title=\"MTIMES\" href=\"http://wiki.accelereyes.com/wiki/index.php/MTIMES\">MTIMES</a>.  The Jacket 1.3 release was based on CUBLAS for matrix multiplication and given the importance of matrix multiplication to so many of our customers, we decided to find out if we could improve performance of the function.\n\n<strong><em>Update: The new MTIMES routine in Jacket 1.4 has improved sigificantly since these benchmarks of the Release Candidate were taken. Have a look at the <a href=\"http://wiki.accelereyes.com/wiki/index.php/MTIMES_Benchmarks_(Jacket_1.4)\" rel=\"nofollow\">MTIMES Benchmarks</a> wiki for up-to-date performance results, including Fermi (Tesla C2050) benchmarks!</em></strong>\n\nThe following chart illustrates the improvements we were able to make with our <em>custom </em>GEMM implementation in the 1.4 Release Candidate. The performance timings for SGEMM at various sizes of square matrices were performed, comparing the <em>Jacket 1.3 Release</em> and the<em> Jacket 1.4 Release Candidate</em>.\n\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/13_14_mtimes_single_A_both_edit-e1277469888509.jpeg\"><img class=\"alignnone size-full wp-image-514\" title=\"1.3 1.4 mtimes single\" alt=\"\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/13_14_mtimes_single_A_both_edit-e1277469888509.jpeg\" width=\"683\" height=\"580\" /></a>\n\nThe graph above represents <strong>C=A*B</strong> timings for <em>every NxN matrix from 10x10 to 4000x4000</em>. Each data point is an average of 2 calls of MTIMES for each matrix size. Notice that Jacket 1.3 follows exactly 2 curves; the <em>lower</em> curve for certain multiples of 16 and 32, and the <em>upper</em> curve for everything else. The lower blue curve is attained by not using textures, as the data aligns and coalesces nicely in memory, and using other optimizations for certain data sizes. By switching to using only texture memory, <em>Jacket 1.4</em> sacrifices some performance slightly in certain cases, but along with other optimizations, it brings <strong>faster consistent run-times</strong>, gives <strong>enhanced <a title=\"GFOR\" href=\"http://wiki.accelereyes.com/wiki/index.php/GFOR\">GFOR</a></strong><strong> performance</strong> and enables <strong>native mixed matrix types</strong> support. In addition to texture memory, careful shared memory and register usage brings significant performance enhancements as well.\n<div id=\"_mcePaste\"><a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/CPU_14_mtimes_single_A2_all.png\"><img class=\"alignnone size-full wp-image-512\" title=\"1.3 CPU 1.4 mtimes single\" alt=\"\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/CPU_14_mtimes_single_A2_all.png\" width=\"687\" height=\"571\" /></a></div>\nThe above graph overlays a MATLAB R2009b 32-bit (CPU) benchmark of MTIMES. <a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/13_14_mtimes_single_AG_all-e1277416726380.png\"><img class=\"alignnone size-full wp-image-499\" title=\"1-3 vs 1-4 vs CPU GFLOPS\" alt=\"\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/13_14_mtimes_single_AG_all-e1277416726380.png\" width=\"714\" height=\"620\" /></a>\n\nThe graph above represents <strong>C=A*B</strong> GFLOPS for <em>every NxN matrix from 10x10 to 4000x4000</em>.\n\nThe<strong> GFLOPS formula</strong> used: <a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/CodeCogsEqn.gif\"><img class=\"aligncenter size-full wp-image-484\" title=\"MTIMES GFLOPS formula\" alt=\"SGEMM GFLOPS formulat\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2010/06/CodeCogsEqn.gif\" width=\"156\" height=\"42\" /></a>\n\nMiscellaneous information regarding the Jacket installation and hardware used for testing:\n<pre class=\"lang:default highlight:0 decode:true crayon-selected\">&gt;&gt; ginfo\nAccelerEyes Jacket v1.4.0rc2 (build 4971)\nCUDA driver: 195.36.15, CUDA toolkit 3.0\nMemory: 0 CPU-used, 23 GPU-used, 4034 GPU-free (in MB)\nLicense Type: Designated Computer\nLicense Features: jacket sdk mgl4 dla\nMulti-GPU: Licensed for 4 GPUs\nDetected CUDA-capable GPUs:\nGPU0 Tesla C1060, 1265 MHz, 4095 MB VRAM, Compute 1.3 (single,double) (in use)\nGPU1 GeForce 8400 GS, 896 MHz, 511 MB VRAM, Compute 1.1 (single)</pre>\n<pre lang=\"bash\">$ cat /proc/cpuinfo\nvendor_id      : GenuineIntel\nmodel name    : Pentium(R) Dual-Core  CPU  E5200  @ 2.50GHz\ncpu MHz        : 2499.934\ncache size     : 2048 KB\ncpu cores      : 2\n…</pre>\n<strong>Update</strong>\nBelow is an example of the SGEMM performance on a Tesla C2050 (Fermi) card\n-  Jacket 1.3 vs. Jacket 1.4 Final Release.\n<a href=\"http://wiki.accelereyes.com/wiki/images/8/8a/Jacket14_sgemm.jpg\"><img alt=\"\" src=\"http://wiki.accelereyes.com/wiki/images/8/8a/Jacket14_sgemm.jpg\" width=\"700\" height=\"580\" /></a>\n\n<strong>References</strong>\n* Volkov, V., and Demmel, J. W., <a title=\"Benchmarking GPUs to tune dense linear algebra\" href=\"http://mc.stanford.edu/cgi-bin/images/6/65/SC08_Volkov_GPU.pdf\">Benchmarking GPUs to tune dense linear algebra</a>, SC08.\n* <a title=\"SGEMM code\" href=\"http://forums.nvidia.com/index.php?showtopic=47689\">SGEMM code</a> from Vasily Volkov.\n* <a title=\"SGEMM code\" href=\"http://forums.nvidia.com/index.php?showtopic=159033\">SGEMM code</a> from Lung-Sheng Chien.\n* <em><strong>See the </strong></em><a title=\"MTIMES benchmarks\" href=\"http://wiki.accelereyes.com/wiki/index.php/MTIMES_Benchmarks_(Jacket_1.4)\"><em><strong>MTIMES benchmarks</strong></em></a><em><strong> wiki page for more info!</strong></em>','SGEMM, MTIMES & CUBLAS performance on the GPU','','publish','open','open','','sgemm-mtimes','','','2010-06-24 08:17:00','2010-06-24 15:17:00','',0,'http://blog.accelereyes.com/blog/?p=474',0,'post','',5),(4700,7,'2014-01-24 19:43:59','2014-01-24 19:43:59','[[\"\",\"<div align=\\\"center\\\"><h5>ArrayFire Free<\\/h5><\\/div>\",\"#colspan#\"],[\"<div align=\\\"center\\\"><strong>Functions<\\/strong><\\/div>\",\"<div align=\\\"center\\\"><strong>Hardware<\\/strong><\\/div>\",\"<div align=\\\"center\\\"><strong>Platforms<\\/strong><\\/div>\"],[\"Basic Operations\",\"CUDA\",\"Windows\"],[\"Arithmetic\",\"OpenCL\",\"Linux\"],[\"Signal Processing\",\"<div align=\\\"center\\\"><strong>Languages<\\/strong><\\/div>\",\"Mac\"],[\"Image Processing\",\"C\\/C++\",\"<div align=\\\"center\\\"><strong>Data Types<\\/strong><\\/div>\"],[\"Statistics\",\"Fortran\",\"All types\"],[\"Visualization\",\"<div align=\\\"center\\\"><strong>Advanced<\\/strong><\\/div>\",\"<div align=\\\"center\\\"><strong>Support<\\/strong><\\/div>\"],[\"\",\"GFOR Loop\",\"Forums\"],[\"\",\"<div align=\\\"center\\\"><strong>Available with Upgrade<\\/strong><\\/div>\",\"#colspan#\"],[\"Linear Algebra\",\"Dedicated License\",\"Phone Support\"],[\"Sparse Matrices\",\"Limited to 1 GPU or device\",\"Premium Support & Consulting\"]]','ArrayFire Free','','publish','closed','closed','','arrayfire-free','','','2014-01-24 20:06:26','2014-01-24 20:06:26','',0,'http://sandbox.arrayfire.com/?post_type=tablepress_table&#038;p=4700',0,'tablepress_table','',0),(4701,7,'2014-01-24 20:06:26','2014-01-24 20:06:26','[[\"\",\"<div align=\\\"center\\\"><h5>ArrayFire Free<\\/h5><\\/div>\",\"#colspan#\"],[\"<div align=\\\"center\\\"><strong>Functions<\\/strong><\\/div>\",\"<div align=\\\"center\\\"><strong>Hardware<\\/strong><\\/div>\",\"<div align=\\\"center\\\"><strong>Platforms<\\/strong><\\/div>\"],[\"Basic Operations\",\"CUDA\",\"Windows\"],[\"Arithmetic\",\"OpenCL\",\"Linux\"],[\"Signal Processing\",\"<div align=\\\"center\\\"><strong>Languages<\\/strong><\\/div>\",\"Mac\"],[\"Image Processing\",\"C\\/C++\",\"<div align=\\\"center\\\"><strong>Data Types<\\/strong><\\/div>\"],[\"Statistics\",\"Fortran\",\"All types\"],[\"Visualization\",\"<div align=\\\"center\\\"><strong>Advanced<\\/strong><\\/div>\",\"<div align=\\\"center\\\"><strong>Support<\\/strong><\\/div>\"],[\"\",\"GFOR Loop\",\"Forums\"],[\"\",\"<div align=\\\"center\\\"><strong>Available with Upgrade<\\/strong><\\/div>\",\"#colspan#\"],[\"Linear Algebra\",\"Dedicated License\",\"Phone Support\"],[\"Sparse Matrices\",\"Limited to 1 GPU or device\",\"Premium Support & Consulting\"]]','ArrayFire Free','','inherit','open','open','','4700-revision-v1','','','2014-01-24 20:06:26','2014-01-24 20:06:26','',4700,'http://sandbox.arrayfire.com/4700-revision-v1/',0,'revision','',0),(4710,7,'2014-01-28 16:15:56','2014-01-28 16:15:56','&nbsp;\r\n\r\n<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/arrayfire_logo_whitebkgnd.png\"><img class=\"aligncenter size-medium wp-image-4605\" alt=\"arrayfire_logo_whitebkgnd\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/arrayfire_logo_whitebkgnd-300x42.png\" width=\"300\" height=\"42\" /></a>\r\n\r\nWe are thrilled to announce the official release ArrayFire v2.0, our biggest and best product ever!\r\n<p style=\"text-align: justify;\">ArrayFire v2.0 adds full commercial support for OpenCL devices including all AMD APUs and AMD FireProTM graphics, CUDA GPUs from NVIDIA, and other OpenCL devices from Imagination, Freescale, ARM, Intel, and Apple.</p>\r\n\r\n<div>\r\n<p style=\"text-align: justify;\">ArrayFire is a CUDA and OpenCL library designed for maximum speed without the hassle of writing time-consuming CUDA and OpenCL device code.  With ArrayFire’s library functions, developers can maximize productivity and performance. Each of ArrayFire’s functions has been hand-tuned by CUDA and OpenCL experts.</p>\r\n<strong>Announcing ArrayFire for OpenCL</strong>\r\n<div>\r\n<ul>\r\n	<li>Support for all of ArrayFire\'s function library (with a few exceptions)</li>\r\n	<li>Same API as ArrayFire for CUDA enabling seamless interoperability</li>\r\n	<li>Just-In-Time (JIT) compilation of kernels for top performance</li>\r\n	<li>Specific tuning for Intel Xeon Phi coprocessors</li>\r\n	<li>Accelerated algorithms for image processing, signal processing, visualization, and more</li>\r\n</ul>\r\n<strong>Updates to ArrayFire for CUDA</strong>\r\n<div>\r\n<ul>\r\n	<li>New signal and image processing functions</li>\r\n	<li>Faster transpose and matrix multiplication</li>\r\n	<li>Enhanced debugging support for GDB and Visual Studio</li>\r\n	<li>Better examples and documentation</li>\r\n</ul>\r\n<p style=\"text-align: justify;\">Maybe the upgrade you wanted isn\'t mentioned here. Don\'t despair! Check out our <a href=\"http://www.accelereyes.com/arrayfire/c/releasenotes.htm\">release notes</a>, as well as our new and improved <a href=\"http://www.accelereyes.com/arrayfire/c/\">documentation</a>, for a complete list of the many ArrayFire v2.0 enhancements available.</p>\r\n<p style=\"text-align: justify;\">To learn more about which licensing option would be the best for your needs, visit our ArrayFire <a href=\"http://www.accelereyes.com/products/arrayfire_licensing\">licensing page</a>.</p>\r\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.5em;\">Just getting started with GPU computing? Need an extra hand on a project? Tap into our deep parallel computing expertise and vast code base by setting up a free <a href=\"http://www.meetme.so/accelereyes\">technical consultation</a> today.</span><span style=\"line-height: 1.5em;\"> </span></p>\r\n\r\n</div>\r\n<div>\r\n<p style=\"text-align: justify;\">We\'re always looking to make ArrayFire even better—let us know your thoughts through this short <a href=\"https://www.surveymonkey.com/s/arrayfire-new-feature\">survey</a>. We promise it\'ll be worth your while!</p>\r\nStay tuned for more exciting news from the ArrayFire gang coming soon...\r\n\r\n</div>\r\n</div>\r\n</div>','ArrayFire v2.0 Official Release','','inherit','open','open','','4604-autosave-v1','','','2014-01-28 16:15:56','2014-01-28 16:15:56','',4604,'http://sandbox.arrayfire.com/4604-autosave-v1/',0,'revision','',0),(4711,7,'2014-01-28 16:16:38','2014-01-28 16:16:38','<a href=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/arrayfire_logo_whitebkgnd.png\"><img class=\"aligncenter size-medium wp-image-4605\" alt=\"arrayfire_logo_whitebkgnd\" src=\"http://blog.accelereyes.com/blog/wp-content/uploads/2013/12/arrayfire_logo_whitebkgnd-300x42.png\" width=\"300\" height=\"42\" /></a> We are thrilled to announce the official release ArrayFire v2.0, our biggest and best product ever!\r\n<p style=\"text-align: justify;\">ArrayFire v2.0 adds full commercial support for OpenCL devices including all AMD APUs and AMD FireProTM graphics, CUDA GPUs from NVIDIA, and other OpenCL devices from Imagination, Freescale, ARM, Intel, and Apple.</p>\r\n\r\n<div>\r\n<p style=\"text-align: justify;\">ArrayFire is a CUDA and OpenCL library designed for maximum speed without the hassle of writing time-consuming CUDA and OpenCL device code.  With ArrayFire’s library functions, developers can maximize productivity and performance. Each of ArrayFire’s functions has been hand-tuned by CUDA and OpenCL experts.</p>\r\n\r\n<strong>Announcing ArrayFire for OpenCL</strong>\r\n<div>\r\n<ul>\r\n	<li>Support for all of ArrayFire\'s function library (with a few exceptions)</li>\r\n	<li>Same API as ArrayFire for CUDA enabling seamless interoperability</li>\r\n	<li>Just-In-Time (JIT) compilation of kernels for top performance</li>\r\n	<li>Specific tuning for Intel Xeon Phi coprocessors</li>\r\n	<li>Accelerated algorithms for image processing, signal processing, visualization, and more</li>\r\n</ul>\r\n<strong>Updates to ArrayFire for CUDA</strong>\r\n<div>\r\n<ul>\r\n	<li>New signal and image processing functions</li>\r\n	<li>Faster transpose and matrix multiplication</li>\r\n	<li>Enhanced debugging support for GDB and Visual Studio</li>\r\n	<li>Better examples and documentation</li>\r\n</ul>\r\n<p style=\"text-align: justify;\">Maybe the upgrade you wanted isn\'t mentioned here. Don\'t despair! Check out our <a href=\"http://www.accelereyes.com/arrayfire/c/releasenotes.htm\">release notes</a>, as well as our new and improved <a href=\"http://www.accelereyes.com/arrayfire/c/\">documentation</a>, for a complete list of the many ArrayFire v2.0 enhancements available.</p>\r\n<p style=\"text-align: justify;\">To learn more about which licensing option would be the best for your needs, visit our ArrayFire <a href=\"http://www.accelereyes.com/products/arrayfire_licensing\">licensing page</a>.</p>\r\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.5em;\">Just getting started with GPU computing? Need an extra hand on a project? Tap into our deep parallel computing expertise and vast code base by setting up a free <a href=\"http://www.meetme.so/accelereyes\">technical consultation</a> today.</span><span style=\"line-height: 1.5em;\"> </span></p>\r\n\r\n</div>\r\n<div>\r\n<p style=\"text-align: justify;\">We\'re always looking to make ArrayFire even better—let us know your thoughts through this short <a href=\"https://www.surveymonkey.com/s/arrayfire-new-feature\">survey</a>. We promise it\'ll be worth your while!</p>\r\n\r\nStay tuned for more exciting news from the ArrayFire gang coming soon...</div>\r\n</div>\r\n</div>','ArrayFire v2.0 Official Release','','inherit','open','open','','4604-revision-v1','','','2014-01-28 16:16:38','2014-01-28 16:16:38','',4604,'http://sandbox.arrayfire.com/4604-revision-v1/',0,'revision','',0),(4712,7,'2014-01-28 21:16:57','2014-01-28 21:16:57','[content_band inner_container=\"true\" no_margin=\"true\" border=\"all\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#fff\"]\r\n<h3>About</h3>\r\nAccelerEyes is the software shop for CUDA and OpenCL. Since 2007, AccelerEyes has offered the most productive solutions for accelerating code using GPUs. Today, AccelerEyes delivers products which are used to accelerate C, C++, and Fortran codes on CUDA GPUs and OpenCL devices.\r\n\r\nArrayFire has thousands of customers. These customers come from a wide range of industries, including defense and intelligence, life science, oil and gas, finance, manufacturing, media, and others. ArrayFire has had success accelerating numerous application types, including math and numerical algorithms, image processing, signal processing, statistics, optimization, and more. Many AccelerEyes customers are realizing 100X speed-up with much less effort than is typically required to accelerate code.\r\n\r\n&nbsp;\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td valign=\"top\">\r\n<h3>Atlanta Office (Headquarters)</h3>\r\n3423 Piedmont Rd NE STE 330\r\nAtlanta, GA 30305\r\n<a href=\"https://maps.google.com/maps?q=3423+Piedmont+Road+Northeast,+Atlanta,+GA&amp;hl=en&amp;ll=33.848356,-84.373766&amp;spn=0.003944,0.006099&amp;sll=33.777328,-84.389484&amp;sspn=0.005583,0.012199&amp;oq=3423+Pie&amp;t=h&amp;hnear=3423+Piedmont+Rd+NE,+Atlanta,+Fulton,+Georgia+30305&amp;z=18\" target=\"_blank\">Directions</a>\r\n<h3>Baltimore Office</h3>\r\n5520 Research Park Dr, Suite 100\r\nBaltimore, MD 21228\r\n<a href=\"https://maps.google.com/maps?q=5520+Research+Park+Dr,+Baltimore,+MD&amp;hl=en&amp;ll=39.247892,-76.714311&amp;spn=0.003678,0.006099&amp;sll=33.848356,-84.373766&amp;sspn=0.003944,0.006099&amp;t=h&amp;hnear=5520+Research+Park+Dr,+Catonsville,+Baltimore,+Maryland+21228&amp;z=18\" target=\"_blank\">Directions</a>\r\n<h3>Online</h3>\r\n<table width=\"100%\">\r\n<tbody>\r\n</tbody>\r\n</table>\r\n</td>\r\n<td>\r\n<h3>Email</h3>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>Sales:</td>\r\n<td><a href=\"mailto:sales@accelereyes.com\">sales@accelereyes.com</a></td>\r\n</tr>\r\n<tr>\r\n<td>Support:</td>\r\n<td><a href=\"mailto:support@accelereyes.com\">support@accelereyes.com</a></td>\r\n</tr>\r\n<tr>\r\n<td>Careers:</td>\r\n<td><a href=\"mailto:jobs@accelereyes.com\">jobs@accelereyes.com</a></td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h3>Phone</h3>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>Sales:</td>\r\n<td>+1 (800) 570-1941 x1</td>\r\n</tr>\r\n<tr>\r\n<td>Technical Support:</td>\r\n<td>+1 (800) 570-1941 x2</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"all\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#1f2b43\"]\r\n<h3><span style=\"color: #ffffff;\">Awards</span></h3>\r\n<span style=\"color: #ffffff;\">AccelerEyes has received the following awards and recognitions:</span>\r\n<ul>\r\n	<li><span style=\"color: #ffffff;\"><strong>2010 Technology Association of Georgia Top 40 Award</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.tagonline.org/georgia-technology-summit.php\" target=\"_blank\"><span style=\"color: #ffffff;\">TAG unveils 2010 top 10 innovative Georgia technology companies</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2009 Supercomputing Conference Disruptive Technology</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://sc09.supercomputing.org/?pg=disrupttech.html\" target=\"_blank\"><span style=\"color: #ffffff;\">AccelerEyes named a disruptive technology company at SC09</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2009 GRA/TAG Business Launch Winner</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.tagonline.org/articles.php?id=373\" target=\"_blank\"><span style=\"color: #ffffff;\">AccelerEyes Wins the Georgia Research Alliance/Technology Association of Georgia Business Launch 2009</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2009 Technology Association of Georgia Top 40 Award</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.tagonline.org/articles.php?id=358\" target=\"_blank\"><span style=\"color: #ffffff;\">TAG unveils 2009 top 10 innovative Georgia technology companies</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2008 Access Venture Partners Challenge Award</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.mootcorp.org/Results2008.asp\" target=\"_blank\"><span style=\"color: #ffffff;\">Global Moot Corp Competition</span></a></span></li>\r\n</ul>\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"all\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#fff\"]\r\n<h3>Careers</h3>\r\nAs a global leader in GPU computing software, our business opportunities are always expanding.\r\n\r\nWe are constantly searching for talented, qualified individuals to join the AccelerEyes team. AccelerEyes is committed to providing employees with the opportunity to grow and learn, the freedom to express ideas and contribute to new developments, and the motivation to succeed.\r\n\r\nTo start the application process, simply email us your resume and let us know which position(s) you\'re interested in.\r\n<ul>\r\n	<li><strong>Software Engineer - Atlanta, GA</strong>\r\nResponsibilities - Develop in C/C++, Fortran, CUDA, and OpenCL. Respond to forum posts and customer support tickets.\r\nQualifications - A background in any of high-performance computing, operating systems, or compilers. Several years of C/C++ and at least one year of CUDA or similar technology. Familiarity with Fortran is a plus. Undergraduate or graduate work in CS or related field.</li>\r\n	<li><strong>Application Engineer - Atlanta, GA</strong>\r\nResponsibilities - Work closely with customers to develop software solutions using our products. Develop technical marketing materials including demos, webinars, tutorials, etc. Respond to forum posts and customer support tickets.\r\nQualifications - Undergraduate or graduate work in CS or related field. Strong programming skills in C/C++. Excellent communication skills.</li>\r\n	<li><strong>Web/Devops Engineer - Atlanta, GA</strong>\r\nResponsibilities - Develop PHP/MySQL backend infrastructure with basic HTML/CSS/JavaScript frontend work. Developing lightweight webapps for system monitoring. Maintaining Magento and SalesForce integration. Maintaining server/cluster infrastructure.\r\nQualifications - Strong PHP and MySQL experience. Very comfortable at a shell prompt. Proficient in HTML, CSS, and JavaScript. Familiarity with Magento or SalesForce is a plus.[/content_band]</li>\r\n</ul>','Company','','inherit','open','open','','329-revision-v1','','','2014-01-28 21:16:57','2014-01-28 21:16:57','',329,'http://sandbox.arrayfire.com/329-revision-v1/',0,'revision','',0),(4713,7,'2014-01-28 21:36:48','2014-01-28 21:36:48','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Epipheo-background.png\"][column type=\"one-half\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]About[/custom_headline]\r\n\r\nAccelerEyes is the software shop for CUDA and OpenCL. Since 2007, AccelerEyes has offered the most productive solutions for accelerating code using GPUs. Today, AccelerEyes delivers products which are used to accelerate C, C++, and Fortran codes on CUDA GPUs and OpenCL devices.\r\n\r\nArrayFire has thousands of customers. These customers come from a wide range of industries, including defense and intelligence, life science, oil and gas, finance, manufacturing, media, and others. ArrayFire has had success accelerating numerous application types, including math and numerical algorithms, image processing, signal processing, statistics, optimization, and more. Many AccelerEyes customers are realizing 100X speed-up with much less effort than is typically required to accelerate code.\r\n\r\n[custom_headline type=\"left\" level=\"h5\" accent=\"true\"]Headquarters[/custom_headline]\r\n\r\n3423 Piedmont Rd NE STE 330\r\nAtlanta, GA 30305\r\n\r\n[custom_headline type=\"left\" level=\"h5\" accent=\"true\"]Email[/custom_headline]\r\n\r\nSales: sales@arrayfire.com\r\nSupport: sales@arrayfire.com\r\nCareers: jobs@arrayfire.com\r\n\r\n[custom_headline type=\"left\" level=\"h5\" accent=\"true\"]Phone[/custom_headline]\r\n\r\nSales: +1 (800) 570-1941 x 1\r\nTechnical Support: +1 (800) 570-1941 x 2 [/column]\r\n\r\n[column type=\"one-half\" last=\"true\"][/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"all\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#1f2b43\"]\r\n<h3><span style=\"color: #ffffff;\">Awards</span></h3>\r\n<span style=\"color: #ffffff;\">AccelerEyes has received the following awards and recognitions:</span>\r\n<ul>\r\n	<li><span style=\"color: #ffffff;\"><strong>2010 Technology Association of Georgia Top 40 Award</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.tagonline.org/georgia-technology-summit.php\" target=\"_blank\"><span style=\"color: #ffffff;\">TAG unveils 2010 top 10 innovative Georgia technology companies</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2009 Supercomputing Conference Disruptive Technology</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://sc09.supercomputing.org/?pg=disrupttech.html\" target=\"_blank\"><span style=\"color: #ffffff;\">AccelerEyes named a disruptive technology company at SC09</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2009 GRA/TAG Business Launch Winner</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.tagonline.org/articles.php?id=373\" target=\"_blank\"><span style=\"color: #ffffff;\">AccelerEyes Wins the Georgia Research Alliance/Technology Association of Georgia Business Launch 2009</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2009 Technology Association of Georgia Top 40 Award</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.tagonline.org/articles.php?id=358\" target=\"_blank\"><span style=\"color: #ffffff;\">TAG unveils 2009 top 10 innovative Georgia technology companies</span></a></span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>2008 Access Venture Partners Challenge Award</strong></span>\r\n<span style=\"color: #ffffff;\"> <a href=\"http://www.mootcorp.org/Results2008.asp\" target=\"_blank\"><span style=\"color: #ffffff;\">Global Moot Corp Competition</span></a></span></li>\r\n</ul>\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"all\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#fff\"]\r\n<h3>Careers</h3>\r\nAs a global leader in GPU computing software, our business opportunities are always expanding.\r\n\r\nWe are constantly searching for talented, qualified individuals to join the AccelerEyes team. AccelerEyes is committed to providing employees with the opportunity to grow and learn, the freedom to express ideas and contribute to new developments, and the motivation to succeed.\r\n\r\nTo start the application process, simply email us your resume and let us know which position(s) you\'re interested in.\r\n<ul>\r\n	<li><strong>Software Engineer - Atlanta, GA</strong>\r\nResponsibilities - Develop in C/C++, Fortran, CUDA, and OpenCL. Respond to forum posts and customer support tickets.\r\nQualifications - A background in any of high-performance computing, operating systems, or compilers. Several years of C/C++ and at least one year of CUDA or similar technology. Familiarity with Fortran is a plus. Undergraduate or graduate work in CS or related field.</li>\r\n	<li><strong>Application Engineer - Atlanta, GA</strong>\r\nResponsibilities - Work closely with customers to develop software solutions using our products. Develop technical marketing materials including demos, webinars, tutorials, etc. Respond to forum posts and customer support tickets.\r\nQualifications - Undergraduate or graduate work in CS or related field. Strong programming skills in C/C++. Excellent communication skills.</li>\r\n	<li><strong>Web/Devops Engineer - Atlanta, GA</strong>\r\nResponsibilities - Develop PHP/MySQL backend infrastructure with basic HTML/CSS/JavaScript frontend work. Developing lightweight webapps for system monitoring. Maintaining Magento and SalesForce integration. Maintaining server/cluster infrastructure.\r\nQualifications - Strong PHP and MySQL experience. Very comfortable at a shell prompt. Proficient in HTML, CSS, and JavaScript. Familiarity with Magento or SalesForce is a plus.[/content_band]</li>\r\n</ul>','Company','','inherit','open','open','','329-revision-v1','','','2014-01-28 21:36:48','2014-01-28 21:36:48','',329,'http://sandbox.arrayfire.com/329-revision-v1/',0,'revision','',0),(4714,7,'2014-01-28 22:10:54','2014-01-28 22:10:54','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Epipheo-background.png\"][column type=\"one-half\"] [custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]About[/custom_headline] AccelerEyes is the software shop for CUDA and OpenCL. Since 2007, AccelerEyes has offered the most productive solutions for accelerating code using GPUs. Today, AccelerEyes delivers products which are used to accelerate C, C++, and Fortran codes on CUDA GPUs and OpenCL devices. ArrayFire has thousands of customers. These customers come from a wide range of industries, including defense and intelligence, life science, oil and gas, finance, manufacturing, media, and others. ArrayFire has had success accelerating numerous application types, including math and numerical algorithms, image processing, signal processing, statistics, optimization, and more. Many AccelerEyes customers are realizing 100X speed-up with much less effort than is typically required to accelerate code.[/column][column type=\"one-half\" last=\"true\"] [custom_headline type=\"left\" level=\"h5\" accent=\"true\"]Email[/custom_headline] Sales: sales@arrayfire.com Support: sales@arrayfire.com Careers: jobs@arrayfire.com [custom_headline type=\"left\" level=\"h5\" accent=\"true\"]Phone[/custom_headline] Sales: +1 (800) 570-1941 x 1 Technical Support: +1 (800) 570-1941 x 2 [custom_headline type=\"left\" level=\"h5\" accent=\"true\"]Headquarters[/custom_headline] 3423 Piedmont Rd NE STE 330 Atlanta, GA 30305[/column] [/content_band][content_band border=\"none\" no_margin=\"true\" padding_top=\"0\" border=\"top\"][map no_container=\"true\"]&lt;iframe width=\"500\" height=\"500\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\"https://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=3423+Piedmont+Road+Northeast,+Atlanta,+GA&amp;amp;aq=0&amp;amp;oq=3423+Piedmont&amp;amp;sll=38.003386,-79.420925&amp;amp;sspn=5.054918,10.821533&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=3423+Piedmont+Rd+NE,+Atlanta,+Georgia+30305&amp;amp;t=m&amp;amp;ll=33.848748,-84.373627&amp;amp;spn=0.285133,0.343323&amp;amp;z=11&amp;amp;iwloc=A&amp;amp;output=embed\"&gt;&lt;/iframe&gt;[/map]<span style=\"font-family: Georgia, \'Times New Roman\', \'Bitstream Charter\', Times, serif; font-size: 14px; line-height: 1.5em;\">[/content_band] [content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#FFF\"]</span>\r\n<h3>Awards</h3>\r\nAccelerEyes has received the following awards and recognitions:\r\n<ul>\r\n	<li>2010 Technology Association of Georgia Top 40 Award <a href=\"http://www.tagonline.org/georgia-technology-summit.php\" target=\"_blank\">TAG unveils 2010 top 10 innovative Georgia technology companies</a></li>\r\n	<li>2009 Supercomputing Conference Disruptive Technology <a href=\"http://sc09.supercomputing.org/?pg=disrupttech.html\" target=\"_blank\">AccelerEyes named a disruptive technology company at SC09</a></li>\r\n	<li>2009 GRA/TAG Business Launch Winner <a href=\"http://www.tagonline.org/articles.php?id=373\" target=\"_blank\">AccelerEyes Wins the Georgia Research Alliance/Technology Association of Georgia Business Launch 2009</a></li>\r\n	<li>2009 Technology Association of Georgia Top 40 Award <a href=\"http://www.tagonline.org/articles.php?id=358\" target=\"_blank\">TAG unveils 2009 top 10 innovative Georgia technology companies</a></li>\r\n	<li>2008 Access Venture Partners Challenge Award <a href=\"http://www.mootcorp.org/Results2008.asp\" target=\"_blank\">Global Moot Corp Competition</a></li>\r\n</ul>\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"all\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#fff\"]\r\n<h3>Careers</h3>\r\nAs a global leader in GPU computing software, our business opportunities are always expanding. We are constantly searching for talented, qualified individuals to join the AccelerEyes team. AccelerEyes is committed to providing employees with the opportunity to grow and learn, the freedom to express ideas and contribute to new developments, and the motivation to succeed. To start the application process, simply email us your resume and let us know which position(s) you\'re interested in.\r\n<ul>\r\n	<li><strong>Software Engineer - Atlanta, GA</strong> Responsibilities - Develop in C/C++, Fortran, CUDA, and OpenCL. Respond to forum posts and customer support tickets. Qualifications - A background in any of high-performance computing, operating systems, or compilers. Several years of C/C++ and at least one year of CUDA or similar technology. Familiarity with Fortran is a plus. Undergraduate or graduate work in CS or related field.</li>\r\n	<li><strong>Application Engineer - Atlanta, GA</strong> Responsibilities - Work closely with customers to develop software solutions using our products. Develop technical marketing materials including demos, webinars, tutorials, etc. Respond to forum posts and customer support tickets. Qualifications - Undergraduate or graduate work in CS or related field. Strong programming skills in C/C++. Excellent communication skills.</li>\r\n	<li><strong>Web/Devops Engineer - Atlanta, GA</strong> Responsibilities - Develop PHP/MySQL backend infrastructure with basic HTML/CSS/JavaScript frontend work. Developing lightweight webapps for system monitoring. Maintaining Magento and SalesForce integration. Maintaining server/cluster infrastructure. Qualifications - Strong PHP and MySQL experience. Very comfortable at a shell prompt. Proficient in HTML, CSS, and JavaScript. Familiarity with Magento or SalesForce is a plus.[/content_band]</li>\r\n</ul>','Company','','inherit','open','open','','329-revision-v1','','','2014-01-28 22:10:54','2014-01-28 22:10:54','',329,'http://sandbox.arrayfire.com/329-revision-v1/',0,'revision','',0),(4722,7,'2014-01-31 19:14:44','2014-01-31 19:14:44','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Epipheo-background.png\"][column type=\"one-half\"] [custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]<span style=\"color: #ffffff;\">About</span>[/custom_headline]<span style=\"color: #ffffff;\"> AccelerEyes is the software shop for CUDA and OpenCL. Since 2007, AccelerEyes has offered the most productive solutions for accelerating code using GPUs. Today, AccelerEyes delivers products which are used to accelerate C, C++, and Fortran codes on CUDA GPUs and OpenCL devices. ArrayFire has thousands of customers. These customers come from a wide range of industries, including defense and intelligence, life science, oil and gas, finance, manufacturing, media, and others. ArrayFire has had success accelerating numerous application types, including math and numerical algorithms, image processing, signal processing, statistics, optimization, and more. Many AccelerEyes customers are realizing 100X speed-up with much less effort than is typically required to accelerate code.</span>[/column][column type=\"one-half\" last=\"true\"] [/column] [column type=\"one-third\"][custom_headline type=\"left\" level=\"h5\" accent=\"false\"]<span style=\"color: #ffffff;\">Email</span>[/custom_headline] <span style=\"color: #ffffff;\">Sales: sales@arrayfire.com\r\nSupport: sales@arrayfire.com\r\nCareers: jobs@arrayfire.com</span>[/column] [column type=\"one-third\"][custom_headline type=\"left\" level=\"h5\" accent=\"false\"]<span style=\"color: #ffffff;\">Phone</span>[/custom_headline]<span style=\"color: #ffffff;\"> Sales: +1 (800) 570-1941 x 1\r\nTechnical Support: +1 (800) 570-1941 x 2</span> [/column][column type=\"one-third\" last=\"true\"][custom_headline type=\"left\" level=\"h5\" accent=\"false\"]<span style=\"color: #ffffff;\">Headquarters</span>[/custom_headline]<span style=\"color: #ffffff;\"> 3423 Piedmont Rd NE STE 330\r\nAtlanta, GA 30305</span>[/column] [/content_band]<span style=\"font-family: Georgia, \'Times New Roman\', \'Bitstream Charter\', Times, serif; font-size: 14px; line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#FFF\"]</span>\r\n\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]Awards[/custom_headline]\r\n\r\nAccelerEyes has received the following awards and recognitions:\r\n<ul>\r\n	<li>2010 Technology Association of Georgia Top 40 Award <a href=\"http://www.tagonline.org/georgia-technology-summit.php\" target=\"_blank\">TAG unveils 2010 top 10 innovative Georgia technology companies</a></li>\r\n	<li>2009 Supercomputing Conference Disruptive Technology <a href=\"http://sc09.supercomputing.org/?pg=disrupttech.html\" target=\"_blank\">AccelerEyes named a disruptive technology company at SC09</a></li>\r\n	<li>2009 GRA/TAG Business Launch Winner <a href=\"http://www.tagonline.org/articles.php?id=373\" target=\"_blank\">AccelerEyes Wins the Georgia Research Alliance/Technology Association of Georgia Business Launch 2009</a></li>\r\n	<li>2009 Technology Association of Georgia Top 40 Award <a href=\"http://www.tagonline.org/articles.php?id=358\" target=\"_blank\">TAG unveils 2009 top 10 innovative Georgia technology companies</a></li>\r\n	<li>2008 Access Venture Partners Challenge Award <a href=\"http://www.mootcorp.org/Results2008.asp\" target=\"_blank\">Global Moot Corp Competition</a></li>\r\n</ul>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Dark-Blue-Dark-Blue-2.png\"]\r\n\r\n[column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]<span style=\"color: #ffffff;\">Careers</span>[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">As a global leader in GPU computing software, our business opportunities are always expanding. We are constantly searching for talented, qualified individuals to join the AccelerEyes team. AccelerEyes is committed to providing employees with the opportunity to grow and learn, the freedom to express ideas and contribute to new developments, and the motivation to succeed. To start the application process, simply email us your resume and let us know which position(s) you\'re interested in.</span>\r\n<ul>\r\n	<li><span style=\"color: #ffffff;\"><strong>Software Engineer - Atlanta, GA</strong> Responsibilities - Develop in C/C++, Fortran, CUDA, and OpenCL. Respond to forum posts and customer support tickets. Qualifications - A background in any of high-performance computing, operating systems, or compilers. Several years of C/C++ and at least one year of CUDA or similar technology. Familiarity with Fortran is a plus. Undergraduate or graduate work in CS or related field.</span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>Application Engineer - Atlanta, GA</strong> Responsibilities - Work closely with customers to develop software solutions using our products. Develop technical marketing materials including demos, webinars, tutorials, etc. Respond to forum posts and customer support tickets. Qualifications - Undergraduate or graduate work in CS or related field. Strong programming skills in C/C++. Excellent communication skills.</span></li>\r\n	<li><span style=\"color: #ffffff;\"><strong>Web/Devops Engineer - Atlanta, GA</strong> Responsibilities - Develop PHP/MySQL backend infrastructure with basic HTML/CSS/JavaScript frontend work. Developing lightweight webapps for system monitoring. Maintaining Magento and SalesForce integration. Maintaining server/cluster infrastructure. Qualifications - Strong PHP and MySQL experience. Very comfortable at a shell prompt. Proficient in HTML, CSS, and JavaScript. Familiarity with Magento or SalesForce is a plus.</span>[/column][column type=\"one-half\" last=\"true\"][/content_band]</li>\r\n</ul>','Company','','inherit','open','closed','','329-revision-v1','','','2014-01-31 19:14:44','2014-01-31 19:14:44','',329,'http://sandbox.arrayfire.com/329-revision-v1/',0,'revision','',0),(4723,7,'2014-01-31 19:19:43','2014-01-31 19:19:43','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Epipheo-background.png\"][column type=\"one-half\"] [custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]<span style=\"color: #ffffff;\">About</span>[/custom_headline]<span style=\"color: #ffffff;\"> AccelerEyes is the software shop for CUDA and OpenCL. Since 2007, AccelerEyes has offered the most productive solutions for accelerating code using GPUs. Today, AccelerEyes delivers products which are used to accelerate C, C++, and Fortran codes on CUDA GPUs and OpenCL devices. ArrayFire has thousands of customers. These customers come from a wide range of industries, including defense and intelligence, life science, oil and gas, finance, manufacturing, media, and others. ArrayFire has had success accelerating numerous application types, including math and numerical algorithms, image processing, signal processing, statistics, optimization, and more. Many AccelerEyes customers are realizing 100X speed-up with much less effort than is typically required to accelerate code.</span>[/column][column type=\"one-half\" last=\"true\"] [/column] [column type=\"one-third\"][custom_headline type=\"left\" level=\"h5\" accent=\"false\"]<span style=\"color: #ffffff;\">Email</span>[/custom_headline] <span style=\"color: #ffffff;\">Sales: sales@arrayfire.com\r\nSupport: sales@arrayfire.com\r\nCareers: jobs@arrayfire.com</span>[/column] [column type=\"one-third\"][custom_headline type=\"left\" level=\"h5\" accent=\"false\"]<span style=\"color: #ffffff;\">Phone</span>[/custom_headline]<span style=\"color: #ffffff;\"> Sales: +1 (800) 570-1941 x 1\r\nTechnical Support: +1 (800) 570-1941 x 2</span> [/column][column type=\"one-third\" last=\"true\"][custom_headline type=\"left\" level=\"h5\" accent=\"false\"]<span style=\"color: #ffffff;\">Headquarters</span>[/custom_headline]<span style=\"color: #ffffff;\"> 3423 Piedmont Rd NE STE 330\r\nAtlanta, GA 30305</span>[/column] [/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#FFF\"]\r\n\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]Awards[/custom_headline]\r\n\r\nAccelerEyes has received the following awards and recognitions:\r\n<ul>\r\n	<li>2010 Technology Association of Georgia Top 40 Award <a href=\"http://www.tagonline.org/georgia-technology-summit.php\" target=\"_blank\">TAG unveils 2010 top 10 innovative Georgia technology companies</a></li>\r\n	<li>2009 Supercomputing Conference Disruptive Technology <a href=\"http://sc09.supercomputing.org/?pg=disrupttech.html\" target=\"_blank\">AccelerEyes named a disruptive technology company at SC09</a></li>\r\n	<li>2009 GRA/TAG Business Launch Winner <a href=\"http://www.tagonline.org/articles.php?id=373\" target=\"_blank\">AccelerEyes Wins the Georgia Research Alliance/Technology Association of Georgia Business Launch 2009</a></li>\r\n	<li>2009 Technology Association of Georgia Top 40 Award <a href=\"http://www.tagonline.org/articles.php?id=358\" target=\"_blank\">TAG unveils 2009 top 10 innovative Georgia technology companies</a></li>\r\n	<li>2008 Access Venture Partners Challenge Award <a href=\"http://www.mootcorp.org/Results2008.asp\" target=\"_blank\">Global Moot Corp Competition</a></li>\r\n</ul>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Dark-Blue-Dark-Blue-2.png\"]\r\n\r\n[column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]<span style=\"color: #ffffff;\">Careers</span>[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">As a global leader in GPU computing software, our business opportunities are always expanding. We are constantly searching for talented, qualified individuals to join the AccelerEyes team. AccelerEyes is committed to providing employees with the opportunity to grow and learn, the freedom to express ideas and contribute to new developments, and the motivation to succeed. To start the application process, simply email us your resume and let us know which position(s) you\'re interested in.</span>\r\n<ul>\r\n	<li><span style=\"color: #ffffff;\"><strong>Software Engineer - Atlanta, GA</strong> Responsibilities - Develop in C/C++, Fortran, CUDA, and OpenCL. Respond to forum posts and customer support tickets. Qualifications - A background in any of high-performance computing, operating systems, or compilers. Several years of C/C++ and at least one year of CUDA or similar technology. Familiarity with Fortran is a plus. Undergraduate or graduate work in CS or related field.</span></li>\r\n</ul>\r\n<ul>\r\n	<li><span style=\"color: #ffffff;\"><strong>Application Engineer - Atlanta, GA</strong> Responsibilities - Work closely with customers to develop software solutions using our products. Develop technical marketing materials including demos, webinars, tutorials, etc. Respond to forum posts and customer support tickets. Qualifications - Undergraduate or graduate work in CS or related field. Strong programming skills in C/C++. Excellent communication skills.</span></li>\r\n</ul>\r\n<ul>\r\n	<li><span style=\"color: #ffffff;\"><strong>Web/Devops Engineer - Atlanta, GA</strong> Responsibilities - Develop PHP/MySQL backend infrastructure with basic HTML/CSS/JavaScript frontend work. Developing lightweight webapps for system monitoring. Maintaining Magento and SalesForce integration. Maintaining server/cluster infrastructure. Qualifications - Strong PHP and MySQL experience. Very comfortable at a shell prompt. Proficient in HTML, CSS, and JavaScript. Familiarity with Magento or SalesForce is a plus.</span>[/column][column type=\"one-half\" last=\"true\"][/content_band]</li>\r\n</ul>','Company','','inherit','open','closed','','329-revision-v1','','','2014-01-31 19:19:43','2014-01-31 19:19:43','',329,'http://sandbox.arrayfire.com/329-revision-v1/',0,'revision','',0),(4724,7,'2014-01-31 19:45:10','2014-01-31 19:45:10','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Epipheo-background.png\"][column type=\"one-half\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]<span style=\"color: #ffffff;\">Partner Program</span>[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">The Partner Program is designed to promote the development and sale of products and services to maximize the productivity of scientists, analysts, and engineers working on technical computing problems that can leverage GPU technology. As our Partner, you benefit from a tight working relationship with AccelerEyes staff and our other partners, while your customers benefit from the integration of your products and solutions with ArrayFire.</span>\r\n\r\n<span style=\"color: #ffffff;\">The AccelerEyes Partner program is built upon the belief that the purpose of a viable partnership includes a market opportunity, a joint product or service which matches that opportunity, and a strategy to market, sell, and support the joint offering. Therefore, AccelerEyes includes programs and activities centered around technical and go-to-market resources that allow the partnership to work hand in hand to develop the solution and properly communicate the solution value into the market while providing the highest level of customer satisfaction.</span>[/column][column type=\"one-half last=\"true\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#fff\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" class=\"mtn\" accent=\"true\"]Partner Categories[/custom_headline]\r\n\r\nAccelerEyes resources dedicated to our partner program fall into two broad categories:\r\n<ul>\r\n	<li><strong>Technical\r\n</strong>Distribution and Integration partners have access to development and evaluation licenses to accomplish business objectives. Porting and optimization support resources are available to maximize value to customers and revenue to both parties. Engineering resources are made available to ensure ArrayFire meets and exceeds partner and customer goals. On-going support resources are available to support integration partners in delivering solutions to the market and to customers of distribution partners as contracted by those customers.</li>\r\n	<li><strong>Go-to-Market</strong>\r\nAll AccelerEyes partners have access to a broad array of Go-to-Market resources, including but not limited to: go-to-market campaigns, sales and marketing training, collateral, press, trade show participation, lead generation, partner portal access, partner relationship Management system access, joint selling, and more. In addition to technical and go-to-market resources, AccelerEyes provides competitive margins to our distribution and integration partners based on market reach, vertical focus, volume of ArrayFire product distributed on an annual basis, and overall commitment to AccelerEyes and the company\'s product.[/column]</li>\r\n</ul>\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"#1f2b43\"]\r\n\r\n[custom_headline type=\"center\" level=\"h3\" class=\"mtn\" accent=\"true\"]<span style=\"color: #ffffff;\">Current Partners</span>[/custom_headline]\r\n\r\n&nbsp;\r\n\r\n[tab_nav type=\"three-up\"] [tab_nav_item title=\"Strategic Partners\" active=\"true\"] [tab_nav_item title=\"OEM Partners\"][tab_nav_item title=\"VAR Partners\"] [/tab_nav] [tabs] [tab active=\"true\"]\r\n\r\n<a href=\"http://developer.amd.com/\">AMD</a> makes OpenCL-capable devices. It serves the high performance computing market with its Opteron™ CPUs &amp; APUs as well as its Radeon™ FirePro™ GPUs.\r\n\r\n<a href=\"http://www.culatools.com/\">EM Photonics</a> develops CULA, a LAPACK libraries for NVIDIA CUDA-capable GPUs. ArrayFire (the CUDA version) includes CULA technology as part of some linear algebra functions.\r\n\r\n<a href=\"http://www.intel.com/content/www/us/en/high-performance-computing/high-performance-xeon-phi-coprocessor-brief.html\">Intel</a> makes OpenCL-capable devices. It serves the high performance computing market with its Intel® Xeon™ CPUs (and integrated GPUs) and Intel® Xeon Phi™ coprocessor.\r\n\r\n<a href=\"http://www.nvidia.com/object/cuda_home.html\">NVIDIA</a> makes CUDA-capable GPUs. It serves the high performance computing market with its Tesla™ GPUs.\r\n\r\n[/tab] [tab]\r\n\r\nOEM Partners represent AccelerEyes and ArrayFire on a global basis. Our OEM partners package and bundle ArrayFire with state of the art hardware systems that consist of single GPU systems to large scale GPU clusters.\r\n\r\n<a href=\"http://www.colfax-intl.com/ms_tesla.asp?M=1\" target=\"_blank\">Colfax</a> - Buy it from a trusted expert. Colfax provides the most comprehensive range of innovative, cutting-edge and highly customized GPU solutions. Colfax has been first-to-market with a 4GPU PSC and the revolutionary CXT8000 - the world\'s first 8GPU server. Leading universities, labs and companies are accelerating their research and business outcomes with optimally configured, ready-to-go Colfax GPU solutions.\r\n\r\n<a href=\"http://www.microway.com/accelereyes\" target=\"_blank\">Microway</a> - an NVIDIA Tesla Preferred Provider. Different GPU applications require specific hardware configurations. Microway supports them all. Widely credited with introducing numeric coprocessors to the general market, Microway became the primary source and recognized industry leader for numeric coprocessors and supporting software. Today Microway\'s reputation is based on excellence in designing and manufacturing high density Linux and UNIX workstations and clusters.\r\n\r\n<a href=\"http://www.siliconmechanics.com/\" target=\"_blank\">Silicon Mechanics, Inc.</a> - can integrate Tesla GPU technology as needed to address your HPC requirements; the company offers the Nvidia® Tesla&amp;trade C2050 cGPU, the NVIDIA Tesla C1060 GPGPU, the NVIDIA Tesla S1070 GPU Computing System (1.296 GHz), and the NVIDIA Tesla S1070 GPU Computing System (1.44 GHz).\r\n\r\n<a href=\"http://www.exxactcorp.com/nvidiatesla.html\" target=\"_blank\">Exxact Corporation</a> - Founded in 1992, Exxact Corporation is a manufacturer of high performance workstations, servers and clusters for visualization, compute-intensive and other specialized applications such as space exploration, medical imaging, financial modeling, film production, broadcasting and industrial design. Exxact is also a value-added distributor of graphics cards, motherboards and peripherals for professional workstations.\r\n\r\n<strong>Australia</strong>\r\n\r\n<a href=\"http://www.xenon.com.au/\" target=\"_blank\">Xenon</a> - an NVIDIA Tesla Preferred Provider. XENON provides seamless end-to-end solutions that integrate hardware, software, consulting, and support services for customers with high performance computing (HPC) requirements. XENON\'s customised HPC solutions enable organisations to process, transfer and manage huge data sets using the latest industry technologies. Scientific research, education, defence, manufacturing &amp; film are some of the demanding industries where XENON\'s HPC solutions have been successfully implemented. XENON\'s core advantage lies in its innovative approach to providing cutting edge solutions to complex problems and that all its resources, including pre and post sales are based in Australia.\r\n\r\n<strong>China</strong>\r\n\r\n<a href=\"http://www.gpusolution.com/_d270298476.htm\" target=\"_blank\">GPUSolution Technologies</a> - is focused on providing GPU-based solutions in China. The company offers GPU hardware systems, GPU software, GPU technical training, GPU optimization, GPU system integration and related technical support.\r\n\r\n<strong>India</strong>\r\n\r\n<a href=\"http://www.connoiseur.com/\" target=\"_blank\">Connoiseur</a> - an NVIDIA Tesla Preferred Provider. Connoiseur Electronics Pvt. Ltd. is one of India\'s leading computer manufacturing company and is ISO 9001:2000 (TUV) certified. We design, build and customize products and offer services to satisfy a range of customer requirements, from desktops, workstations and entry level servers to high end mission critical servers and we also provide premier services to leading global corporations.\r\n\r\n<strong>South Korea</strong>\r\n\r\n<a href=\"http://www.miruware.com/\" target=\"_blank\">Miruware</a> - an NVIDIA Tesla Preferred Provider providing HPC solutions in South Korea.\r\n\r\n[/tab][tab]\r\n\r\nReseller (VAR) partners represent AccelerEyes and ArrayFire on a geographical and/or vertical market basis. Our VARs are the heart of the AccelerEyes distribution strategy and have the ability to bundle ArrayFire with a wide variety of complimentary hardware, software, and service offerings to meet our customer needs.\r\n\r\n<strong>Europe</strong>\r\n\r\n<a href=\"http://www.developers-source.de/\" target=\"_blank\">SMB GmbH</a> - is a european reseller for high-performance computing compilers and tools. SMB provides ArrayFire to customers in <b>Germany, Austria, and the Netherlands</b>. SMB is offering a portfolio of GPU Computing tools and services to government, education, scientific research and manufacturing customers to develop their own GPU Solutions on different platforms. SMB provides customers with workshops, local language support and training.\r\n\r\n<a href=\"http://www.sciworkstech.com/logiciels/jacket.html\" target=\"_blank\">SciWorks Technologies</a> - is a high technology company that is primarily aimed at users and developers of scientific computing solutions. SciWorks provides ArrayFire to customers in <b>France</b>. SciWorks relies on collaboration between its people and scientists who are in need of technology, consultancy, training, development and research. SciWorks offers expertise in various fields of applied mathematics and system control and signal processing, among others.\r\n\r\n<a href=\"http://hpc.sprinx.cz/sw/jacket-2.aspx\" target=\"_blank\">Sprinx</a> - an NVIDIA Tesla Preferred Provider in the <b>Czech Republic</b> and <b>Slovakia</b>. Sprinx\'s HPC mission is to provide solutions that enable customers and partners to receive the greatest value from their IT investments by leveraging HPC (high performance computing) technologies. We provide high quality professional services in two areas: Software Services and System Services. These services can be provided onsite at the customer\'s location or at Sprinx\'s HPC.\r\n\r\n<strong>Australia</strong>\r\n\r\n<a href=\"http://www.xenon.com.au/\" target=\"_blank\">Xenon</a> - an NVIDIA Tesla Preferred Provider in <b>Australia</b>. XENON provides seamless end-to-end solutions that integrate hardware, software, consulting, and support services for customers with high performance computing (HPC) requirements. XENON\'s customised HPC solutions enable organisations to process, transfer and manage huge data sets using the latest industry technologies.\r\n\r\n<strong>China</strong>\r\n\r\n<a href=\"http://www.hirain.com/Product/product_intro1.asp?menucolr=3&amp;ID=1224\" target=\"_blank\">HiRain Technologies</a> - HiRain Technologies, founded in 1998 and headquartered in Beijing with offices in Hongkong, Shanghai, Chengdu, Changchun and Wuhan, is a high-tech service company. Offering system-level solutions that span software, hardware, engineering services and systems, HiRain has earned a reputation for serving customers across diverse industry segments including aero/defense, automotive, telecommunications, electronics, education, research, etc. Hirain\'s depth of product solutions including MATLAB from The Mathworks makes them a solid partner for AccelerEyes in China.\r\n\r\n<a href=\"http://www.netopcomputing.com/\" target=\"_blank\">NetOp Computing</a> - is a high-performance computing and visualization industry experts, focusing on government, education and scientific research and manufacturing customers with innovative high-performance computing and visualization solutions and professional consultation services in China.\r\n\r\n<strong>Japan</strong>\r\n\r\n<a href=\"http://www.concurrent.co.jp/products/jacket/index.html\" target=\"_blank\">Concurrent Systems</a> - has been providing the best HPC solutions in Japan since 1987.\r\n\r\n<a href=\"http://www.hpctech.co.jp/\" target=\"_blank\">HPC Tech</a> - We have been forcusing on HPC (High Performance Computing) and advanced IT technology which support for the new technology and new service.\r\n\r\n<strong>Mexico</strong>\r\n\r\n<a href=\"http://www.globalcomputing.com.mx/index.html\" target=\"_blank\">Global Computing</a> - founded in 1998 to support academic institutions and research centers in Mexico to quickly and efficiently develop technical applications for engineering and scientific disciplines. Global Computing helps its clients to increase productivity, reduce costs and accelerate efforts in development.\r\n\r\n<strong>India</strong>\r\n\r\n<a href=\"http://www.netwebindia.com/gpgpu/jackethpc.html\" target=\"_blank\">Netweb</a> offers solutions based on NVIDIA® Tesla C1060 and S1070. These solutions enable every computational researcher and technical professional to have a dedicated computing resource. Netweb Technologies offers the latest technology solutions to increase the return on investments.\r\n\r\n<a href=\"http://www.connoiseur.com/\" target=\"_blank\">Connoiseur</a> - an NVIDIA Tesla Preferred Provider. Connoiseur Electronics Pvt. Ltd. is one of India\'s leading computer manufacturing company and is ISO 9001:2000 (TUV) certified. We design, build and customize products and offer services to satisfy a range of customer requirements, from desktops, workstations and entry level servers to high end mission critical servers and we also provide premier services to leading global corporations.\r\n\r\n<strong>Singapore &amp; Malaysia - ASEAN</strong>\r\n\r\n<a href=\"http://www.taknet.com.sg/GPU_Workstations.html\" target=\"_blank\">Taknet</a> - provides solutions in the ASEAN region to meet and exceed a wide variety of needs. GPU Computing solutions from Taknet include the option of the ArrayFire. The latest NVIDIA GPUs are integrated with these solutions.\r\n\r\n<strong>South Korea</strong>\r\n\r\n<a href=\"http://www.miruware.com/\" target=\"_blank\">Miruware</a> - an NVIDIA Tesla Preferred Provider providing HPC solutions in South Korea.\r\n\r\n<strong>Russia</strong>\r\n\r\n<a href=\"http://www.softkey.ru/\" target=\"_blank\">Softkey JSC</a> - SoftKey is the leading Internet software-distributing company in Russia. Its catalogue includes over 12 thousands software positions. SoftKey offers its customers wide assortment; diversity of payment methods; prompt (frequently, immediate) order processing; process of order execution tracing in personal section; various discounts from the store and the software manufacturers. The company has its offices in 10 countries, among them the Ukraine, Kazakhstan, Belarus, Bulgaria, Israel, Poland, the Baltic countries, Moldova.\r\n\r\n[/tab] [/tabs][/content_band]','Partner Program','','inherit','open','closed','','187-revision-v1','','','2014-01-31 19:45:10','2014-01-31 19:45:10','',187,'http://sandbox.arrayfire.com/187-revision-v1/',0,'revision','',0),(4739,7,'2014-02-03 21:20:00','2014-02-03 21:20:00','[content_band  no_margin=\"true\" border=\"none\"][container][column type=\"one-half\" ][gap size=\"25%\"][custom_headline class=\"mtn\" style=\"margin: 0;\" type=\"left\" level=\"h1\" style=\"color: #ffffff\"]Carry the fire.[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">We\'re all about fast code. Download ArrayFire to experience parallel computing like never before!</span>\r\n<p style=\"text-align: center;\">[/column][column type=\"one-half\" last=\"true\"]<img class=\"aligncenter  wp-image-463\" alt=\"Carry the fire\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Carry-the-fire-554x1024.png\" width=\"232\" height=\"430\" />[/column][/container] [/content_band]</p>\r\n[content_band bg_color=\"#ffffff\" no_margin=\"true\" border=\"none\"][container][column type=\"one-half\"]<img class=\"aligncenter size-large wp-image-462\" alt=\"Bat signal\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal-1024x639.png\" width=\"1024\" height=\"639\" />[/column][column type=\"one-half\" last=\"true\"] [gap size=\"17%\"][custom_headline style=\"margin: 0;\" type=\"right\" level=\"h1\" ]Enlist the gang.[/custom_headline]\r\n<p style=\"text-align: left;\">Just getting started with parallel computing? Need an extra hand on a project? Tap into our deep parallel computing expertise and vast code base by consulting our engineers! Set up a free consultation today.</p>\r\n[/column][/container] [/content_band]\r\n\r\n[content_band bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Dark-Blue-Dark-Blue-2.png\" no_margin=\"true\" border=\"none\"][container][column type=\"one-half\"]\r\n\r\n[custom_headline style=\"margin: 0;\" style=\"color: #fff;\" type=\"left\" level=\"h1\" ]Check the files.[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">Thousands of companies from across the world have discovered the scorching speed of ArrayFire for themselves. Peruse our case studies to see what we\'ve been up to!</span>\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n<img alt=\"Hunched over\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over-1024x572.png\" width=\"1024\" height=\"572\" />\r\n\r\n[/column][/container] [/content_band]','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-03 21:20:00','2014-02-03 21:20:00','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4740,7,'2014-02-03 21:21:31','2014-02-03 21:21:31','[content_band  no_margin=\"true\" border=\"none\"][container][column type=\"one-half\" ][gap size=\"25%\"][custom_headline class=\"mtn\" style=\"margin: 0;\" type=\"left\" level=\"h1\" style=\"color: #ffffff\"]Carry the fire.[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">We\'re all about fast code. Download ArrayFire to experience parallel computing like never before!</span>\r\n<p style=\"text-align: center;\">[/column][column type=\"one-half\" last=\"true\"]<img class=\"aligncenter  wp-image-463\" alt=\"Carry the fire\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Carry-the-fire-554x1024.png\" width=\"232\" height=\"430\" />[/column][/container] [/content_band]</p>\r\n[content_band bg_color=\"#ffffff\" no_margin=\"true\" border=\"none\"][container][column type=\"one-half\"]<img class=\"aligncenter size-large wp-image-462\" alt=\"Bat signal\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal-1024x639.png\" width=\"1024\" height=\"639\" />[/column][column type=\"one-half\" last=\"true\"] [gap size=\"17%\"][custom_headline style=\"margin: 0;\" type=\"right\" level=\"h1\" ]Enlist the gang.[/custom_headline]\r\n<p style=\"text-align: left;\">Just getting started with parallel computing? Need an extra hand on a project? Tap into our deep parallel computing expertise and vast code base by consulting our engineers! Set up a free consultation today.</p>\r\n[/column][/container] [/content_band]\r\n\r\n[content_band no_margin=\"true\" border=\"none\"][container][column type=\"one-half\"]\r\n\r\n[custom_headline style=\"margin: 0;\" style=\"color: #fff;\" type=\"left\" level=\"h1\" ]Check the files.[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">Thousands of companies from across the world have discovered the scorching speed of ArrayFire for themselves. Peruse our case studies to see what we\'ve been up to!</span>\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n<img alt=\"Hunched over\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over-1024x572.png\" width=\"1024\" height=\"572\" />\r\n\r\n[/column][/container] [/content_band]','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-03 21:21:31','2014-02-03 21:21:31','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4741,7,'2014-02-03 21:23:18','2014-02-03 21:23:18','[content_band  no_margin=\"true\" border=\"none\"][container][column type=\"one-half\" ][gap size=\"25%\"][custom_headline class=\"mtn\" style=\"margin: 0;\" type=\"left\" level=\"h1\" style=\"color: #ffffff\"]Carry the fire.[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">We\'re all about fast code. Download ArrayFire to experience parallel computing like never before!</span>\r\n<p style=\"text-align: center;\">[/column][column type=\"one-half\" last=\"true\"]<img class=\"aligncenter  wp-image-463\" alt=\"Carry the fire\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Carry-the-fire-554x1024.png\" width=\"232\" height=\"430\" />[/column][/container] [/content_band]</p>\r\n[content_band bg_color=\"#ffffff\" no_margin=\"true\" border=\"none\"][container][column type=\"one-half\"]<img class=\"aligncenter size-large wp-image-462\" alt=\"Bat signal\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal-1024x639.png\" width=\"1024\" height=\"639\" />[/column][column type=\"one-half\" last=\"true\"] [gap size=\"17%\"][custom_headline style=\"margin: 0;\" type=\"right\" level=\"h1\" ]Enlist the gang.[/custom_headline]\r\n<p style=\"text-align: left;\">Just getting started with parallel computing? Need an extra hand on a project? Tap into our deep parallel computing expertise and vast code base by consulting our engineers! Set up a free consultation today.</p>\r\n[/column][/container] [/content_band]\r\n\r\n[content_band bg_image=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Dark-Blue-Dark-Blue-2.png\" no_margin=\"true\" border=\"none\"][container][column type=\"one-half\"]\r\n\r\n[custom_headline style=\"margin: 0;\" style=\"color: #fff;\" type=\"left\" level=\"h1\" ]Check the files.[/custom_headline]\r\n\r\n<span style=\"color: #ffffff;\">Thousands of companies from across the world have discovered the scorching speed of ArrayFire for themselves. Peruse our case studies to see what we\'ve been up to!</span>\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n<img alt=\"Hunched over\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over-1024x572.png\" width=\"1024\" height=\"572\" />\r\n\r\n[/column][/container] [/content_band]','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-03 21:23:18','2014-02-03 21:23:18','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4756,7,'2014-02-04 18:00:36','2014-02-04 18:00:36','','Twitter','','publish','open','open','','twitter','','','2014-11-12 15:30:13','2014-11-12 15:30:13','',0,'http://sandbox.arrayfire.com/?p=4756',4,'nav_menu_item','',0),(4783,7,'2014-02-04 20:42:37','2014-02-04 20:42:37','','Services','','publish','open','closed','','consulting','','','2014-04-07 21:14:48','2014-04-07 21:14:48','',0,'http://sandbox.arrayfire.com/?p=4783',11,'nav_menu_item','',0),(4794,7,'2014-02-05 16:12:44','2014-02-05 16:12:44','','Single glame guy, torso','','inherit','open','closed','','single-glame-guy-torso','','','2014-11-07 20:43:53','2014-11-07 20:43:53','',6648,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso.png',0,'attachment','image/png',0),(4796,7,'2014-02-05 16:25:43','2014-02-05 16:25:43','','Benchmark guy, torso','','inherit','open','closed','','benchmark-guy-torso','','','2014-02-05 16:25:43','2014-02-05 16:25:43','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso.png',0,'attachment','image/png',0),(4798,7,'2014-02-05 16:32:53','2014-02-05 16:32:53','','wheelie','','inherit','open','closed','','wheelie','','','2014-02-05 16:32:53','2014-02-05 16:32:53','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/wheelie.png',0,'attachment','image/png',0),(4799,7,'2014-02-05 16:43:59','2014-02-05 16:43:59','','right leaning','','inherit','open','closed','','right-leaning','','','2014-02-05 16:43:59','2014-02-05 16:43:59','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning.png',0,'attachment','image/png',0),(4801,7,'2014-02-05 17:00:16','2014-02-05 17:00:16','','comingatyou','','inherit','open','closed','','comingatyou','','','2014-02-05 17:00:16','2014-02-05 17:00:16','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png',0,'attachment','image/png',0),(4803,7,'2014-02-05 17:06:11','2014-02-05 17:06:11','','looking at board','','inherit','open','closed','','looking-at-board','','','2014-02-05 17:06:11','2014-02-05 17:06:11','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/looking-at-board.png',0,'attachment','image/png',0),(4806,7,'2014-02-05 17:33:05','2014-02-05 17:33:05','','gears','','inherit','open','closed','','gears-2','','','2014-11-07 20:15:26','2014-11-07 20:15:26','',6640,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1.png',0,'attachment','image/png',0),(4808,7,'2014-02-05 19:48:05','2014-02-05 19:48:05','','academia','','inherit','open','closed','','academia-2','','','2014-02-05 19:48:05','2014-02-05 19:48:05','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/academia.png',0,'attachment','image/png',0),(4818,7,'2014-02-05 21:10:20','2014-02-05 21:10:20','','doctor doctor','','inherit','open','closed','','doctor-doctor','','','2014-02-05 21:10:20','2014-02-05 21:10:20','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/doctor-doctor.png',0,'attachment','image/png',0),(4820,7,'2014-02-05 21:21:28','2014-02-05 21:21:28','','i robot','','inherit','open','closed','','i-robot','','','2014-02-05 21:21:28','2014-02-05 21:21:28','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/i-robot.png',0,'attachment','image/png',0),(4822,7,'2014-02-05 21:33:59','2014-02-05 21:33:59','','dj Flame','','inherit','open','closed','','dj-flame','','','2014-11-07 20:14:31','2014-11-07 20:14:31','',6640,'http://sandbox.arrayfire.com/wp-content/uploads/2014/01/dj-Flame.png',0,'attachment','image/png',0),(4830,7,'2014-02-06 16:04:49','2014-02-06 16:04:49','','Whitepaper 1','','inherit','open','closed','','whitepaper-1','','','2014-02-06 16:04:49','2014-02-06 16:04:49','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png',0,'attachment','image/png',0),(4831,7,'2014-02-06 16:07:48','2014-02-06 16:07:48','','Whitepaper 2','','inherit','open','closed','','whitepaper-2','','','2014-02-06 16:07:48','2014-02-06 16:07:48','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png',0,'attachment','image/png',0),(4846,7,'2014-02-07 19:12:12','2014-02-07 19:12:12',' ','','','publish','open','closed','','4846','','','2014-04-07 15:28:05','2014-04-07 15:28:05','',0,'http://sandbox.arrayfire.com/?p=4846',5,'nav_menu_item','',0),(4860,7,'2014-02-08 14:09:55','2014-02-08 14:09:55','','Blog','','publish','open','closed','','blog','','','2014-04-07 21:14:48','2014-04-07 21:14:48','',0,'http://sandbox.arrayfire.com/?p=4860',16,'nav_menu_item','',0),(4862,7,'2014-02-08 21:29:36','2014-02-08 21:29:36','','whitearrayfire_logo_blackbkgnd','','inherit','open','closed','','whitearrayfire_logo_blackbkgnd','','','2014-02-08 21:29:36','2014-02-08 21:29:36','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/02/whitearrayfire_logo_blackbkgnd.png',0,'attachment','image/png',0),(4863,7,'2014-02-08 21:30:28','2014-02-08 21:30:28','','ltgreywhtarrayfire_logo_blackbkgnd','','inherit','open','closed','','ltgreywhtarrayfire_logo_blackbkgnd','','','2014-02-08 21:30:28','2014-02-08 21:30:28','',0,'http://sandbox.arrayfire.com/wp-content/uploads/2014/02/ltgreywhtarrayfire_logo_blackbkgnd.png',0,'attachment','image/png',0),(4875,7,'2014-02-10 07:24:49','2014-02-10 07:24:49','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe></p>\r\n<p style=\"text-align: left;\">[column type=\"one-half\"][button  type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button][/column][column type=\"one-half\" last=\"true\"][button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\"]Schedule a consultation[/button][/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 07:24:49','2014-02-10 07:24:49','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4876,7,'2014-02-10 07:57:38','2014-02-10 07:57:38','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][button  type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]<iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 07:57:38','2014-02-10 07:57:38','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4877,7,'2014-02-10 07:59:29','2014-02-10 07:59:29','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][button  type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>[gap size=\"30%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]<iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 07:59:29','2014-02-10 07:59:29','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4878,7,'2014-02-10 08:00:39','2014-02-10 08:00:39','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][button  type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"40%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]<iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:00:39','2014-02-10 08:00:39','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4879,7,'2014-02-10 08:01:03','2014-02-10 08:01:03','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][button  type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"45%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]<iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:01:03','2014-02-10 08:01:03','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4880,7,'2014-02-10 08:04:53','2014-02-10 08:04:53','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][gap size=\"15%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][gap size=\"15%\"][/column][column type=\"three-fifths\" last=\"true\"]<iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:04:53','2014-02-10 08:04:53','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4881,7,'2014-02-10 08:06:15','2014-02-10 08:06:15','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][gap size=\"30%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]<iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:06:15','2014-02-10 08:06:15','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4882,7,'2014-02-10 08:08:54','2014-02-10 08:08:54','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][gap size=\"30%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:08:54','2014-02-10 08:08:54','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4883,7,'2014-02-10 08:14:34','2014-02-10 08:14:34','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][custom_headline type=\"left\" level=\"h3\"]An acceleration library for CUDA and OpenCL[/custom_headline][gap size=\"15%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]</p>\r\n<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:14:34','2014-02-10 08:14:34','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4884,7,'2014-02-10 08:15:28','2014-02-10 08:15:28','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][custom_headline type=\"left\" class=\"mtn\" level=\"h3\"]An acceleration library for CUDA and OpenCL[/custom_headline][gap size=\"5%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]</p>\r\n<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:15:28','2014-02-10 08:15:28','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4885,7,'2014-02-10 08:16:04','2014-02-10 08:16:04','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][custom_headline type=\"left\" class=\"mtn\" level=\"h1\"]An acceleration library for CUDA and OpenCL[/custom_headline][gap size=\"5%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]</p>\r\n<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:16:04','2014-02-10 08:16:04','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4886,7,'2014-02-10 08:16:52','2014-02-10 08:16:52','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][custom_headline type=\"left\" class=\"mtn\" level=\"h2\"]An acceleration library for CUDA and OpenCL[/custom_headline][gap size=\"5%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"15%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]</p>\r\n<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:16:52','2014-02-10 08:16:52','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),(4887,7,'2014-02-10 08:17:33','2014-02-10 08:17:33','[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" ]\r\n<p style=\"text-align: left;\">[column type=\"two-fifths\"][custom_headline type=\"left\" class=\"mtn\" level=\"h2\"]An acceleration library for CUDA and OpenCL[/custom_headline][gap size=\"10%\"][button  class=\"x-btn-custom-type\" type=\"flat\" shape=\"rounded\" href=\"#\" size=\"jumbo\" block=\"true\"]Download ArrayFire[/button]</p>\r\n[gap size=\"10%\"]\r\n<p style=\"text-align: left;\">[button  type=\"flat\" block=\"true\" shape=\"rounded\" href=\"#\" size=\"jumbo\" class=\"x-btn-custom-type\"]Schedule a consultation[/button][/column][column type=\"three-fifths\" last=\"true\"]</p>\r\n<p style=\"text-align: center;\"><iframe name=\"wistia_embed\" src=\"//fast.wistia.net/embed/iframe/rj2bar3xxp\" height=\"360\" width=\"640\" allowfullscreen=\"\" frameborder=\"0\" scrolling=\"no\"></iframe>[/column][gap size=\"10%\"]</p>\r\n[/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" bg_color=\"transparent\" ]<span style=\"line-height: 1.5em;\">[column type=\"two-fifths\" last=\"false\" ] [custom_headline type=\"left\" level=\"h3\"]It was a pleasure to burn.[/custom_headline]ArrayFire is a fast, hardware-neutral software library for GPU computing with an easy-to-use API. Its array-based function set makes GPU programming simple. A few lines of code in ArrayFire can replace dozens of lines of raw GPU code, saving you valuable time and lowering development costs.[</span><span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[column class=\"center-text\" type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Single-glame-guy-torso-e1391782556876.png\"]<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n<span style=\"line-height: 1.5em;\">[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"CUDAandOpenCL\"]</span>\r\n\r\n[column type=\"one-half\"][gap size=\"15%\"]\r\n\r\n<a href=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\"><img class=\"aligncenter\" alt=\"CUDA logo\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/CUDA-logo.jpg\" width=\"231\" height=\"140\" /></a>\r\n\r\n<img class=\"aligncenter\" alt=\"OpenCL\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/OpenCLLogo_678x452.png\" width=\"326\" height=\"217\" />\r\n\r\n[/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] ArrayFire for CUDA and OpenCL[/custom_headline]\r\n\r\nArrayFire supports CUDA-capable NVIDIA GPUs and most OpenCL devices, including AMD GPUs/APUs and Intel coprocessors. It also supports other OpenCL devices from ARM and Qualcomm.<span style=\"line-height: 1.5em;\">[/column]</span>\r\n\r\n[/content_band][content_band id=\"documentation\" inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"documentation\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"]Documentation[/custom_headline]\r\n\r\n<strong>ArrayFire for C, C++, and Fortran</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/c\" target=\"_blank\">CUDA &amp; OpenCL C/C++</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire/fortran\" target=\"_blank\">CUDA &amp; OpenCL Fortran</a></li>\r\n</ul>\r\n<strong>User Forums</strong>\r\nEvery post gets a response from ArrayFire engineers.\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://forums.accelereyes.com/\" target=\"_blank\">User Forums</a></li>\r\n</ul>\r\n<strong>Introductory Demo Videos</strong>\r\n<ul>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=1\" target=\"_blank\">ArrayFire Overview</a></li>\r\n	<li id=\"overview\"><a href=\"http://www.accelereyes.com/arrayfire_tour?idx=2\" target=\"_blank\">ArrayFire Demo</a></li>\r\n</ul>\r\n[/column][column type=\"one-half\" last=\'true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/gears1-e1391783830561.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"whitepapers\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ]Whitepapers[/custom_headline]\r\n<p style=\"text-align: center;\"><img class=\"aligncenter  wp-image-4830\" alt=\"Whitepaper 1\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-1.png\" width=\"466\" height=\"374\" /></p>\r\n&nbsp;\r\n\r\n[/column]\r\n<p style=\"text-align: left;\">[column type=\"one-half\"]<img class=\"aligncenter  wp-image-4831\" alt=\"Whitepaper 2\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/02/Whitepaper-2.png\" width=\"442\" height=\"304\" />[/column][column type=\"one-half\" last=\"true\"][/content_band]</p>\r\n[content_band inner_container=\"true\"  no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"benchmarks\" ][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\" ]Benchmarks[/custom_headline]\r\n\r\nAll benchmarks were performed on a NVIDIA Tesla C2050 with an Intel i7-950 processor. The benchmarks compare ArrayFire with several popular CPU-based acceleration libraries, including <a href=\"http://software.intel.com/en-us/articles/intel-mkl/\" target=\"_new\">Intel Math Kernel Library</a>, <a href=\"http://software.intel.com/en-us/articles/intel-ipp/\" target=\"_new\">Intel Integrated Performance Primitives</a>, <a href=\"http://eigen.tuxfamily.org/index.php?title=Main_Page\" target=\"_new\">Eigen</a>, and <a href=\"http://arma.sourceforge.net/\" target=\"_new\">Armadillo</a>.[/column]\r\n\r\n[column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Benchmark-guy-torso-e1391784056150.png\"][/column]\r\n\r\n[column type=\"one-fifth\"][/column][column type=\"three-fifths\"][tab_nav type=\"four-up\" ] [tab_nav_item title=\"Base\" active=\"true\"] [tab_nav_item title=\"Linear Algebra\"] [tab_nav_item title=\"Convolution\"][tab_nav_item title=\"Utility\"][/tab_nav] [tabs] [tab active=\"true\"]<img class=\"aligncenter\" alt=\"Matrix Multiply\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_multiply-1024x730.png\" width=\"569\" height=\"405\" />[line]<img class=\"aligncenter\" alt=\"Matrix Transpose\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/matrix_transpose-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"FFT\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/fft-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [tab]<img class=\"aligncenter\" alt=\"LU\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/lu-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"SVD\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/svd-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Solve\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/solve-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"Convs\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/convs-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"Conv\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/conv-1024x730.png\" width=\"553\" height=\"394\" />[/tab][tab]<img class=\"aligncenter\" alt=\"sum\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sum-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"sort\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/sort-1024x730.png\" width=\"553\" height=\"394\" />[line]<img class=\"aligncenter\" alt=\"scan\" src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/scan-1024x730.png\" width=\"553\" height=\"394\" />[/tab] [/tabs][/column][column type=\"one-fifth\" last=\"true\"][/column][/content_band]\r\n\r\n<span style=\"line-height: 1.5em;\">[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirefree\"]</span>\r\n<div id=\"arrayfirefree\"></div>\r\n[column type=\"one-half\"][/column][column type=\"one-fourth\"][custom_headline type=\"center\" level=\"h3\"]ArrayFire Free[/custom_headline][/column][column type=\"one-fourth\" last=\"true\"][/column][column type=\"one-fourth\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/right-leaning-e1391788779101.png\"][/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Functions[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Basic Operations</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Arithmetic</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Signal Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Image Processing</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Statistics</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Visualization</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Hardware[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] CUDA</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] OpenCL</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Languages[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] C/C++</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Fortran</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Advanced[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] GFOR Loop</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][column type=\"one-fourth\" last=\"true\"]\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Platforms[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Windows</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Linux</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] Mac</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Data Types[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td>[icon type=\"check-circle\"] All types</td>\r\n</tr>\r\n<tr>\r\n<td>[custom_headline type=\"center\" level=\"h5\"]Support[/custom_headline]</td>\r\n</tr>\r\n<tr>\r\n<td> [icon type=\"check-circle\"] Forums</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n[/column][/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"arrayfirepro\"]\r\n<div id=\"arrayfirepro\"></div>\r\n[pricing_table  columns=\"3\"][pricing_table_column  featured=\"false\" title=\"ArrayFire Developer\" currency=\"$\" price=\"499 / year\" interval=\"$149 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item  type=\"times-circle\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"times-circle\"] Linear algebra [/icon_list_item] [icon_list_item type=\"times-circle\"] Sparse matrices [/icon_list_item][icon_list_item type=\"times-circle\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"true\" featured_sub=\"Most Popular\" title=\"ArrayFire Pro\" currency=\"$\" price=\"1,499 / year\" interval=\"$525 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"] Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support [/icon_list_item][icon_list_item type=\"times-circle\"] Premium support &amp; counsulting [/icon_list_item] [/icon_list] [button href=\"#\"]Purchase [/button] [/pricing_table_column] [pricing_table_column featured=\"false\" title=\"ArrayFire Enterprise\" currency=\"$\" price=\"2,999 / year\" interval=\"$1,049 / year (Academic)\"] [icon_list] [icon_list_item type=\"star\"] Dedicated license [/icon_list_item] [icon_list_item type=\"star\"] Starts at 2 GPUs or devices [/icon_list_item] [icon_list_item type=\"star\"] Linear algebra [/icon_list_item][icon_list_item type=\"star\"]Sparse matrices [/icon_list_item][icon_list_item type=\"star\"] Phone support[/icon_list_item][icon_list_item type=\"star\"]Premium support &amp; consulting [/icon_list_item][/icon_list] [button href=\"#\"] Purchase [/button] [/pricing_table_column] [/pricing_table] [/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\" none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"consulting\"]\r\n<div id=\"consulting\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Bat-signal.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"  ] GPU Consulting Services [/custom_headline]\r\n\r\nArrayFire provides GPU coding services. Hire us to accelerate your code.\r\n\r\nWe\'ve already helped thousands of organizations speedup their code. We\'ve accelerated all sorts of algorithms, data sets, and challenging problems in the past and we\'re sure that we can tackle your code too. [/column]\r\n\r\n[/content_band][content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"starter\"]\r\n<div id=\"starter\"></div>\r\n[column type=\"one-half\" last=\"false\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\"] Starter Package ($500)¹ [/custom_headline]\r\n\r\nHire us for 1-day. We set you up with one engineer dedicated for a full day, as well as support from senior and test engineers throughout the day. Here\'s how it works:\r\n<ul>\r\n	<li>Initial phone call (click \"Talk to Us\" below to get started)</li>\r\n	<li>You send us your code or algorithm</li>\r\n	<li>We analyze your code for potential GPU benefit</li>\r\n	<li>We accelerate as much of the code as is possible within the 1-day effort, applying our extensive GPU software libraries</li>\r\n	<li>We produce a final report, along with code</li>\r\n</ul>\r\nThe final report outlines the best approach to follow for full GPU-acceleration of your code.\r\n<h6>¹ Limit one (1) per customer.[/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/comingatyou.png\"][/column][/content_band]</h6>\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"]\r\n<div id=\"customcoding\"></div>\r\n[column type=\"one-half\"  fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" ] Coding Work (Custom) [/custom_headline]\r\n\r\nHire us immediately to accelerate your code.\r\n\r\nWhy Choose Us?\r\n<ul>\r\n	<li>Deep experience, already servicing thousands of customers</li>\r\n	<li>Quality work, with leading GPU software</li>\r\n	<li>Efficient delivery, with ArrayFire\'s extensive code base we can deliver results fast</li>\r\n	<li>Proven, we make customers happy through faster code</li>\r\n</ul>\r\nOur Strengths\r\n<ul>\r\n	<li>Excellence in GPU code</li>\r\n	<li>Well-written, efficient C, C++, Fortran, Java, or .NET</li>\r\n	<li>Application porting and integration</li>\r\n	<li>Tuning software to peak hardware performance</li>\r\n	<li>Scalability of algorithms to handle enterprise-level programs</li>\r\n</ul>\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][custom_headline type=\"left\" level=\"h3\"  ]The ArrayFire Blog[/custom_headline][/column][column type=\"one-half\" last=\"true\" fade=\"true\" fade_animation=\"in-from-right\" ][image src=\"http://sandbox.arrayfire.com/wp-content/uploads/2014/01/Hunched-over.png\"][/column][/content_band]\r\n\r\n[content_band inner_container=\"true\" no_margin=\"true\" border=\"none\" padding_top=\"40px\" padding_bottom=\"40px\" id=\"customcoding\"][column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"][custom_headline type=\"left\" level=\"h3\" ]Training[/custom_headline]\r\n\r\n<span style=\"line-height: 1.5em;\">Attendees will receive the latest industry knowledge and techniques for GPU computing in CUDA and OpenCL. Check out our [extra href=\"#example\" title=\"Training Course Syllabus\" info=\"popover\" info_place=\"top\" info_trigger=\"click\" info_content=\"</span>\r\n\r\n&nbsp;\r\n<h5>DAY 1, INTRODUCTION</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nParallel Computing Overview\r\nProgramming Models\r\nArchitectures Supported\r\nBasic Dataset Mapping Techniques\r\nAcceleration Libraries, ArrayFire\r\nAsynchronos Operation\r\nPortability\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nA Simple Kernel\r\nEquivalent ArrayFire Example\r\nMonte Carlo Pi Estimation\r\nUsing Libraries\r\nTiming\r\nPorting Code for Multiple Devices\r\n<h5>DAY 3, SCALING</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures:</strong>\r\nMulti-Device Use Cases\r\nHeterogeneous Computing\r\nScaling Across Multiple Devices\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:</strong>\r\nOut of Core Problems: Matrix Multiply\r\nTask Level Parallelism: Optimization\r\nArrayFire Multi-Device\r\n<h5>DAY 2, OPTIMIZATION</h5>\r\n<strong>Lectures:\r\n</strong>Architecture\r\nMemory Models\r\nAdvanced Mapping Techniques\r\nArchitecture Specific Limitations and Optimizations\r\nArrayFire: Lazy Evaluation and Code Vectorization\r\n\r\n&nbsp;\r\n\r\n<strong>Practice:\r\n</strong>Matrix Transpose\r\nOptimization Using Shared Memory\r\nMedian Filter\r\nOptimization Using Constant Memory\r\nCommand Queues Example\r\nArrayFire Example: Nearest Neighbor Algorithm\r\n\r\n&nbsp;\r\n<h5>DAY 4, ALGORITHM PROBLEMS</h5>\r\n&nbsp;\r\n\r\n<strong>Lectures and Practice:\r\n</strong>Reductions\r\nScan Algorithms\r\nSort\r\nConvolution\r\nCustomer-Specific Problem\"]syllabus[/extra]!\r\n\r\nArrayFire offers up to four days of specialized GPU training in CUDA and OpenCL programming. Register for a general course, or schedule a course dedicated for your organization. We can travel to you, or you can travel to our Atlanta office. We recommend that attendees have a working knowledge of C/C++ in order to gain the most from the training courses.[/column][column type=\"one-third\" last=\"false\"]\r\n\r\n<strong>Fee includes:</strong>\r\n<ul>\r\n	<li>Instruction by an excellent and interesting expert. Many hands-on exercises.</li>\r\n	<li>Use of a laptop with CUDA and OpenCL capable GPUs and CPUs</li>\r\n	<li>Choice of Linux or Windows operating system</li>\r\n	<li>Printed manual of lecture material</li>\r\n	<li>Electronic copy of programming exercises</li>\r\n	<li>Certificate of Completion[/column][column type=\"one-third\" last=\"true\"][/column]</li>\r\n</ul>\r\n[column type=\"one-half\"][/column][column type=\"one-half\" last=\"true\"]\r\n\r\n[custom_headline type=\"left\" level=\"h3\" looks_like=\"h3 ]Upcoming Courses[/custom_headline]\r\n\r\n<strong>CUDA</strong>\r\n\r\n<strong>OpenCL</strong>\r\n\r\n<span style=\"line-height: 1.5em;\">[/column][/content_band]</span>','Home','','inherit','open','closed','','245-revision-v1','','','2014-02-10 08:17:33','2014-02-10 08:17:33','',245,'http://sandbox.arrayfire.com/245-revision-v1/',0,'revision','',0),