{"id":2902,"date":"2014-11-12T20:14:14","date_gmt":"2014-11-13T03:14:14","guid":{"rendered":"http:\/\/mcclanahoochie.com\/blog\/?p=2902"},"modified":"2015-04-26T20:22:02","modified_gmt":"2015-04-27T03:22:02","slug":"arrayfire-open-source","status":"publish","type":"post","link":"https:\/\/mcclanahoochie.com\/blog\/2014\/11\/arrayfire-open-source\/","title":{"rendered":"ArrayFire is now Open Source"},"content":{"rendered":"<p>The<strong> <a href=\"https:\/\/github.com\/arrayfire\/arrayfire\" target=\"_blank\">ArrayFire<\/a> GPGPU Computing Library<\/strong> has just been <a href=\"http:\/\/arrayfire.com\/arrayfire-is-now-open-source\/\" target=\"_blank\">released<\/a> as open source software!<br \/>\nAs a former employee of ArrayFire (AccelerEyes), I am especially excited about this <a href=\"http:\/\/notonlyluck.com\/2014\/11\/12\/a-big-day-for-arrayfire-with-open-source-release\/\" target=\"_blank\">decision<\/a>! \ud83d\ude42<br \/>\nIt&#8217;s so cool to see the this library continue to grow; this is only the beginning of the <a href=\"https:\/\/github.com\/arrayfire-community\" target=\"_blank\">potential<\/a> for ArrayFire!<br \/>\nI can&#8217;t wait to start contributing [again] to the best and easiest to use high-performance GPU library <a href=\"http:\/\/arrayfire.com\/download\" target=\"_blank\">available<\/a>\u00a0today.<br \/>\nCongrats <a href=\"http:\/\/arrayfire.com\/\" target=\"_blank\">guys<\/a>!<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/i0.wp.com\/www.arrayfire.com\/docs\/arrayfire_logo.png?resize=400%2C57\" alt=\"\" width=\"400\" height=\"57\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The ArrayFire GPGPU Computing Library has just been released as open source software! As a former employee of ArrayFire (AccelerEyes), I am especially excited about this decision! \ud83d\ude42 It&#8217;s so cool to see the this library continue to grow; this is only the beginning of the potential for ArrayFire! I can&#8217;t wait to start contributing &#8230; <a title=\"ArrayFire is now Open Source\" class=\"read-more\" href=\"https:\/\/mcclanahoochie.com\/blog\/2014\/11\/arrayfire-open-source\/\" aria-label=\"Read more about ArrayFire is now Open Source\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[91,110,103,156,109,101],"class_list":["post-2902","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-arrayfire","tag-cuda","tag-gpgpu","tag-open-source","tag-opencl","tag-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pZdXI-KO","jetpack-related-posts":[{"id":2230,"url":"https:\/\/mcclanahoochie.com\/blog\/2012\/05\/arrayfire-gtc-2012-presentations\/","url_meta":{"origin":2902,"position":0},"title":"ArrayFire GTC 2012 Presentations","author":"mcclanahoochie","date":"May 25, 2012","format":false,"excerpt":"I got another incredible opportunity to give two introductory talks at Nvidia's 2012 GPU Technology Conference about AccelerEyes's two software products:\u00a0Jacket(MATLAB) and ArrayFire(C++) ! Jacket for Multidimensional Scaling in Genomics - \u00a0Video\u00a0 | \u00a0Slides ArrayFire Graphics: A Tutorial - \u00a0Video\u00a0 | \u00a0Slides \u00a0 Enjoy!","rel":"","context":"In \"arrayfire\"","block_context":{"text":"arrayfire","link":"https:\/\/mcclanahoochie.com\/blog\/tag\/arrayfire\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2012\/05\/DSC_0935-2-small-300x198.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1896,"url":"https:\/\/mcclanahoochie.com\/blog\/2011\/11\/gpu-tv-l1-optical-flow-with-libjacket\/","url_meta":{"origin":2902,"position":1},"title":"GPU TV-L1 Optical Flow with ArrayFire","author":"mcclanahoochie","date":"November 6, 2011","format":false,"excerpt":"Update 1: LibJacket has been renamed to\u00a0\u00a0ArrayFire. Update 2: Huang Chao-Hui was nice enough to port the LibJacket code mentioned here to ArrayFire - see his work here. As one of my\u00a0Computer Vision\u00a0class\u00a0projects, I decided to implement optical flow, because I wanted to learn more about optical flow, and also\u2026","rel":"","context":"In \"arrayfire\"","block_context":{"text":"arrayfire","link":"https:\/\/mcclanahoochie.com\/blog\/tag\/arrayfire\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2011\/11\/jkt-oflow-tvl1-1024x626.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2011\/11\/jkt-oflow-tvl1-1024x626.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2011\/11\/jkt-oflow-tvl1-1024x626.png?resize=525%2C300 1.5x"},"classes":[]},{"id":2503,"url":"https:\/\/mcclanahoochie.com\/blog\/2012\/11\/sc12-arrayfire-webcam-demo\/","url_meta":{"origin":2902,"position":2},"title":"SC12 ArrayFire Demos","author":"mcclanahoochie","date":"November 25, 2012","format":false,"excerpt":"I got the\u00a0privilege\u00a0of developing some of the\u00a0Super Computing 2012\u00a0(SC12)\u00a0booth demos\u00a0for\u00a0AccelerEyes,\u00a0to showcase\u00a0ArrayFire. Above is an\u00a0ArrayFire\u00a0demo running at SC12 on an nVidia GPU. This demo (source code HERE) uses OpenCV to capture webcam video and processes the stream in several different ways, in real-time.\u00a0From top-left to bottom-right: Sobel filter, ArrayFire logo, Motion\u2026","rel":"","context":"In \"arrayfire\"","block_context":{"text":"arrayfire","link":"https:\/\/mcclanahoochie.com\/blog\/tag\/arrayfire\/"},"img":{"alt_text":"Sobel filter, ArrayFire logo, Motion (frame differencing), Source image, Histogram plot, Mean-shift filter","src":"https:\/\/i0.wp.com\/lh5.googleusercontent.com\/-5haNiIGwpIk\/UKw-ct6OHDI\/AAAAAAAAMd8\/lxnzbUk44Kc\/s912\/20121114_111339.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2347,"url":"https:\/\/mcclanahoochie.com\/blog\/2012\/08\/local-contrast-enhancement-with-arrayfire-opencv\/","url_meta":{"origin":2902,"position":3},"title":"Local Contrast Enhancement with ArrayFire + OpenCV","author":"mcclanahoochie","date":"August 20, 2012","format":false,"excerpt":"About one year ago, I wrote about a simple example of Image Processing with LibJacket + OpenCV... and the trend continues today. In this post, I demonstrate how ArrayFire (an improved version of LibJacket) can easily interop with OpenCV, through a simple example of unsharp maksing (local contrast enhancement). \u00a0\u2026","rel":"","context":"In \"arrayfire\"","block_context":{"text":"arrayfire","link":"https:\/\/mcclanahoochie.com\/blog\/tag\/arrayfire\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2012\/08\/Screen-Shot-2012-08-20-at-9.19.21-AM_2-1024x640.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2012\/08\/Screen-Shot-2012-08-20-at-9.19.21-AM_2-1024x640.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2012\/08\/Screen-Shot-2012-08-20-at-9.19.21-AM_2-1024x640.png?resize=525%2C300 1.5x"},"classes":[]},{"id":887,"url":"https:\/\/mcclanahoochie.com\/blog\/2011\/01\/gtc-2010-presentation\/","url_meta":{"origin":2902,"position":4},"title":"GTC 2010 Presentation","author":"mcclanahoochie","date":"January 1, 2011","format":false,"excerpt":"September 2010 I got an incredible opportunity (at the last minute!) to give a short talk\u00a0at Nvidia's GTC 2010 on what I learned about GPU matrix multiplication, while at\u00a0AccelerEyes over the summer! Watch\u00a0presentation here (I'm 19 minutes in)! \u00a0 \u00a0","rel":"","context":"In \"arrayfire\"","block_context":{"text":"arrayfire","link":"https:\/\/mcclanahoochie.com\/blog\/tag\/arrayfire\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2011\/01\/gtc-2010-front-door.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":886,"url":"https:\/\/mcclanahoochie.com\/blog\/2011\/01\/mtimes-gpu-matrix-multiplication\/","url_meta":{"origin":2902,"position":5},"title":"MTIMES &#8211; GPU Matrix Multiplication","author":"mcclanahoochie","date":"January 1, 2011","format":false,"excerpt":"July 2010 OK, it's not really a project, but I did learn a lot about GPU matrix multiplication over the summer, working\u00a0at AccelerEyes. I\u00a0re-worked the back-end CUDA code for\u00a0the MTIMES Jacket function. I also modified it to accelerate SUM, MIN, and\u00a0MAX. Checkout my MTIMES wiki page!","rel":"","context":"In \"arrayfire\"","block_context":{"text":"arrayfire","link":"https:\/\/mcclanahoochie.com\/blog\/tag\/arrayfire\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mcclanahoochie.com\/blog\/wp-content\/uploads\/2011\/01\/fermi_gflops_single.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/posts\/2902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/comments?post=2902"}],"version-history":[{"count":0,"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/posts\/2902\/revisions"}],"wp:attachment":[{"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/media?parent=2902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/categories?post=2902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mcclanahoochie.com\/blog\/wp-json\/wp\/v2\/tags?post=2902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}