Raytracing a Black Hole

Edwin SolisArrayFire, C/C++, Case Studies, Education Leave a Comment

After Albert Einstein’s proposal of the General Theory of Relativity, our outlook on how gravity works has changed significantly opening the possibility of mystifying objects such as Black Holes. Black Holes are massive compact objects resulting from unhalted gravitational collapse. Their gravity affects the spacetime surrounding it to such an extreme level that any object near it, including light, will have as an unavoidable future a path of “falling” towards the black hole. While the theory of general relativity was proven to be highly accurate from experiments testing the bending of light seen during an eclipse or the gravitational time dilation experience of objects closer to massive objects, there had not been a direct observation of a black hole until …

Quantum Simulators and AQS

Edwin SolisArrayFire, Quantum Computing Leave a Comment

This is the last post in the series on quantum computing. You can check the previous ones here: In the previous post, we discussed the applications of quantum algorithms that are in development and we touched upon the idea of testing these algorithm ideas. In the final post of this series, we will discuss about the ways that quantum programs can be analyzed before running in actual quantum computers. Status Quo of Quantum Computing Real-world Quantum Computers have been undergoing a huge boom during the last few years with hundreds of businesses and tens of countries investing in this technology. Due to the expensive R&D cost for Quantum Computing, the main business model for Quantum Computing has been through the …

Applications of Quantum Algorithms

Edwin SolisArrayFire, Quantum Computing Leave a Comment

This is the fourth post in a series on quantum computing, which began with the following: In the previous post, we explained the inner workings of a quantum computer and introduced quantum algorithms to take advantage of the properties of quantum mechanics and execute specific computations. However, we glossed over how these algorithms can provide a quantum speedup. To understand this, we must first understand the type of problems that are well-suited for quantum computers. Error Bounded Algorithms As discussed before, Classical Computers store definite states; therefore, the computations result in deterministic outcomes: a problem may be solved by a direct series of steps (an algorithm) that, given a specific input, will produce a specific outcome. However, while Quantum Computers …

Talk to Emacs with a GPT4 Co-Worker

Gallagher PryorAI, Education, Open Source 1 Comment

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 …

ArrayFire v3.9.0 Release

Umar ArshadAnnouncements, ArrayFire, C/C++, CUDA, oneAPI, OpenCL 1 Comment

We are pleased to announce a new release of the ArrayFire library, v3.9.0. This release makes it easier than ever to target new devices without sacrificing performance. This post describes four of these new features, including: oneAPI Backend This release is the first time since v3.0 that introduces a new backend. The new backend is built with the oneAPI specification on top of the SYCL language. oneAPI is an open specification providing a full framework for high-performance computing applications without vendor lock-in. While this has been possible with OpenCL, the oneAPI specification includes libraries like BLAS and FFT significantly reducing the burden on the developers to maintain math functions and increasing the performance of these common operations. Here is a …

Reconstruction of 3D Phase Contrast Atomic Electron Tomography

John MelonakosArrayFire, Case Studies Leave a Comment

Researchers from UC Berkeley and Lawrence Berkeley National Laboratory credit ArrayFire in a paper published in the 2020 IEEE High-Performance Extreme Computing Conference (HPEC). The paper is titled “GPU Accelerated Anomaly Detection of Large Scale Light Curves.” In this work, the authors present a new algorithm for reconstructing the three-dimensional (3D) electrostatic potential of a sample at atomic resolution from phase contrast imaging using high-resolution transmission electron microscopy. Summary Transmission electron microscopy (TEM) offers various imaging modes, allowing for quantitative 3D estimations of local structure, electrostatic and magnetic potentials, and local chemistry, significantly impacting biology and materials science. It is now possible to measure the 3D position of individual atoms with high precision and even determine both the 3D position and species …

Parallelization of FOAGDD Point of Interest Extraction

Gustavo StahlArrayFire, Case Studies Leave a Comment

(This is a guest post by Gustavo Stahl from São Paulo State University in Brazil.) Summary Corners present in images are widely used in multiple areas of computer science, such as augmented reality, autonomous vehicles, service robots, 3D reconstructions, object tracking, and many more. To work appropriately, applications in these areas usually rely on fast corner detectors with good-quality extractions. The FOAGDD (First-order Anisotropic Gaussian Direction Derivative) is an algorithmic technique for extracting corners in an image originally proposed by Weichuan Zhang and Changming Sun in 2019. The method surpassed the majority of extractors in corner detection quality but lacked speed, making it improper for real-time applications. Hence, this paper proposes transferring the workload from the original implementation to the …

The Torch By ArrayFire: Q1’2023 GPU Updates

John MelonakosArrayFire, Newsletter Leave a Comment

News for the accelerated computing community – March 23, 2023 Signup for Newsletter Emails Dear ArrayFire Community, The first quarter of 2023 was highlighted by substantial progress on the oneAPI backend for ArrayFire. Updates on this project can be tracked on the ArrayFire Github. With the explosion of AI throughout technical computing domains, we are working closely with the teams at Facebook AI Research (FAIR) working on the Flashlight and Shumai projects. We share a project spotlight on Shumai below. From interactions with many of you and reading papers published using ArrayFire, we are delighted to see our work be used to make a difference in meaningful technical computing projects. If you want to showcase your project in this newsletter, please …

How does a Quantum Computer work?

Edwin SolisArrayFire, Quantum Computing Leave a Comment

This is the third post in a series on quantum computing, which began with the following: By design, a quantum computer is a device that executes quantum computations. These quantum computations utilize quantum mechanical principles to encode and operate on inputs and outputs. There are two main types of quantum computers based on the data unit: discrete-based and continuous-based. Discrete-based quantum computers use a discrete unit of data with quantum properties; most use qubits on which operations are performed. In contrast, continuous-based quantum computers utilize observable quantities with continuous intervals to define the system’s state. We will focus on discrete/digital quantum systems as this is the most common model for which many algorithms have already been developed. Like classical computers, …

Quantum States vs Classical States

Edwin SolisArrayFire, Quantum Computing Leave a Comment

In the last post of this series, we discussed how supercharging quantum computing with Quantum Mechanics’ principles allows high computational power. To come to terms with this, we must first delve into the math behind quantum memory. A computer needs memory. It stores input and output data as a transitional place to operate on data. We care about this functionality because data encodes states. In the classical sense, a state refers to the particular arrangement that something is in at a specific moment. Examples of a classical state are the position of a door: either open or closed; the color of a marker: red, blue, yellow, etc.; the value of a bit: 0 or 1 / false or true; and …