With the successful construction of a GPT4 co-worker, we can now talk to emacs. (And also understand how disturbingly simple it is to build one – read on!) WARNING The AI can make mistakes and you might say something horrible on accident like “Man, I hate my harddrive!” I hope you understand the ramifications 😀 With a voice interface, ask the AI to do work or answer questions for you in the context of the current buffer (file/directory). The AI will do the job asynchronously out of the way, leaving you to move on to the next task while the AI plugs away and speaks to you about its completed task. Demo: The code is posted at https://github.com/pv-pterab-s/emacs-pinky-saver. It requires some …
Checkpoint and Restore Emacs into Immortality
TL;DR. An Emacs death is horrible to endure. Checkpoint Emacs’ state at regular intervals to bring it back to life with CRIU. Yup, CRIU can handle Emacs, now! The steps, nowadays, are simple and this post quickly outlines the constraints and the commands to make it work. This post is short and to the point. The build choices, configurations, etc. have been stripped again and again to make things as simple as possible. Also, these instructions are given for a recent Ubuntu in order to be more canonical 😄 Make a Place for bins at ~/.bin Grab an Emacs without DBUS Grab CRIU Configure Emacs Your immortal Emacs will be in daemon mode and will talk with emacsclients over a …
CUDA Computing on Google Colab with ArrayFire
For the first-time in our 14 year existence, we are now able to provide our community with the ability to run ArrayFire programs for free within minutes. Before today, users would have to download and install the library on their own systems, which can be a hassle if you just want to play around with some code and benchmarks. Today, we’re excited to announce that ArrayFire is available on Google Colab, the free GPU computing cloud service from Google. Colaboratory, or “Colab” for short, allows you to write and execute Python in your browser, with Zero configuration required, free access to GPUs, and easy sharing. You can jump right in and start playing with this new tool: Click Here to …
Finger Vein Identity Recognition in “Negligible Time” using ArrayFire
In this blog post, we summarize work by researchers in Slovakia using ArrayFire to develop OpenFinger, a finger vein identity recognition library. Finger prints and finger veins can be used as a biometric for identity recognition. The physical setup of their sensor system is the following collection of CMOS sensors scattering light to a near infrared LED that projects the image to a CCD camera for capture to a computer. The computing infrastructure used in this work consists of the following components. Several great open source libraries are used, including OpenCV, Caffe, Qt, and ArrayFire. ArrayFire is specifically used in pre-processing to accelerate Gabor filtering on the GPU. Gabor filter has proven itself as one of the most suitable techniques …
Bringing Together the GPU Computing Ecosystem for Python
To date, we have not done a lot for the Python ecosystem. A few months ago, we decided it was time to change that. Like NVIDIA said in this post, the current slate of GPU tools available to Python developers is scattered. With some attention to community building, perhaps we can build something better — together. NVIDIA spoke some about its plans to help cleanup the ecosystem. We’re onboard with that mentality and have two ways we propose to contribute: We’re working on a survey paper that assesses the state of the ecosystem. What technical computing things can you do with each package? What benchmarks result from the packages on real Python user code? What plans does each group have …
Cycling through SYCL
We recently gave an overview of recent history in the technical computing hardware market. In it, we mention the energy at Intel right now. The weight of Intel is behind the SYCL standard through its new software approach, oneAPI. SYCL is a cross-platform API that targets heterogeneous hardware, similar to OpenCL and CUDA. The SYCL standard was first introduced by Codeplay and is now being managed by the Khronos group. It allows single-source compilation in C++ to target multiple devices on a system, rather than using C++ for the host and domain specific kernel languages for the device. Furthermore, SYCL is fully C++ 17 standards compliant. You don’t have any extensions to the language that would prevent any standards compliant …
The Roaring 20s in AI & Technical Computing
Since ArrayFire was founded in 2007, there has been an explosion in software and its importance to our lives. Computers, connected to sensors and real-world outcomes, do really cool things that touch nearly every aspect of our lives. I believe these are exciting times for technical computing and for HPC, as evidenced by the things showcased this week at SC 2020. While ArrayFire focuses purely on software, our hardware partners turn our imaginative lines of code into real-world applications. AMD, NVIDIA, and Intel have each evolved tremendously since we started ArrayFire. Over a decade ago, NVIDIA and its CEO-founder Jensen saw the opportunity to teach the world a new heterogeneous model of computing that overwhelmingly convinces scientists, engineers, and analysts …
ArrayFire v3.5 Official Release
Today we are pleased to announce the release of ArrayFire v3.5, our open source library of parallel computing functions supporting CUDA, OpenCL, and CPU devices. This new version of ArrayFire improves features and performance for applications in machine learning, computer vision, signal processing, statistics, finance, and more. This release focuses on thread-safety, support for simple sparse-dense arithmetic operations, canny edge detector function, and a genetic algorithm example. A complete list of ArrayFire v3.5 updates and new features are found in the product Release Notes. Thread Safety ArrayFire now supports threading programming models. This is not intended to improve the performance since most of the parallelism is happening on the device, but it does allow you to use multiple devices in …
Using GPUs in KVM Virtual Machines
Introduction A couple of months ago, I began investigating GPU passthrough on my workstation to test ArrayFire on different operating systems. Around the same time, we at ArrayFire found ourselves with a few surplus GPUs. Having had great success with my virtualization efforts, we decided to build a Virtualized GPU Server to utilize these GPUs. Building a Virtualized GPU Server alleviated one of the pain points at our company: We no longer need to swap GPUs or Hard Disks to test a new environment. To maximize the number of GPUs we can put in a machine, we ended up getting a Quantum TXR430-0768R from Exxact Computing which comes in a 4U form factor and supports upto 8x double width GPUs. …
Contributors: A big benefit to open source software
Making the decision to open source your software is not an easy process. Indeed, here at ArrayFire our choice to release ArrayFire under the open source, commercially friendly, BSD 3-Clause License came only after many hours of consideration and philosophical discussion (e.g. see our CEO’s blog on these topics). Thus far this decision has proven to be strictly beneficial to our company. The impact of third-party contributions Although ArrayFire is primarily developed by our engineers, there are several contributions from other developers. Therefore we feel particularly compelled to elucidate how these contributions have improved the ArrayFire ecosystem. Packaging for Linux and OSX One of the best parts of open source distribution is that your code can be packaged and distributed for …