How does a Quantum Computer work?

Edwin Solis ArrayFire, 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 Solis ArrayFire, 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 …

What is a Quantum Computer?

Edwin Solis ArrayFire, Quantum Computing Leave a Comment

Quantum computing has been a growing area of computer science over the last few years. Thanks to leaps in material engineering, physics, and noise reduction algorithms, the possibility of constructing a fully-fledged quantum computer in the future grows nearer.  Like the computers we use daily, a quantum computer is a machine that can perform computations with given data. However, unlike classical computers, they are characterized by using Quantum Mechanical Principles in the data storage and logic of those computations. Among some of these novel Quantum Mechanical properties, these are the keys ones: Even if Quantum Computers have many advantages, including possibly being faster, are classical computers insufficient? As innovation in new technologies grows in fields such as finance, medicine, and …

ArrayFire Quantum Simulator

Edwin Solis ArrayFire, Quantum Computing Leave a Comment

ArrayFire is pleased to announce the release of the first version of the open-source quantum simulator programming library, the ArrayFire Quantum Simulator, AQS for short.  AQS is a C++14 library that provides the functionality to create, manipulate, visualize, and simulate quantum circuits with quick and accurate results. The library is built upon ArrayFire to provide hardware-neutral, fast CPU and GPU computations with a familiar interface. Features Its feature set includes: Fast Statevector calculations of 1000+ gates up to 30 qubits Implementing essential gates (Pauli, Superposition, Rotation, Multiple Control gates, etc.) Support for extending and creating gates Implementation of standard algorithms (QFT, Grover, VQE) Granular control over calculation stages Custom text displayer of created circuits and circuit schematics Integration with ArrayFire, …

Topology Optimization with Accessibility Constraint for Multi-Axis Machining

John Melonakos Case Studies, Computer Vision Leave a Comment

Researchers from the Palo Alto Research Center (PARC) credit ArrayFire in a paper published in the Journal of Computer-Aided Design. The paper is titled “Topology Optimization with Accessibility Constraint for Multi-Axis Machining” and showcases ArrayFire accelerating the workload. Summary In this post, a topology optimization (TO) framework is presented to enable the automated design of mechanical components while ensuring the result can be manufactured using multi-axis machining. Although TO improves the part’s performance, the as-designed model is often geometrically too complex to be machined, and the as-manufactured model can significantly vary due to machining constraints that are not accounted for during TO. In other words, many of the optimized design features cannot be accessed by a machine tool without colliding with the …

Synthetic Aperture Radar on the Jetson TX1

John Melonakos ArrayFire, Case Studies, Computer Vision, CUDA, Image Processing 1 Comment

Researchers at Peter the Great St. Petersburg Polytechnic University have implemented a synthetic aperture radar processing on the Jetson TX1 Platform using ArrayFire as described in this paper. The paper introduces SAR as “a remote sensing technique producing high-resolution radar images of the Earth’s surface. SAR technology allows obtaining wide swath radar images of objects at a considerable distance regardless of the weather and lighting conditions. It can be used by unmanned aerial vehicles and space satellites. Thus, SAR technology allows solving various problems, such as: detecting small objects (vehicles, airplanes, ships), assessing the state of railways, airfields, seaports, mapping an area, assisting in geological exploration, mapping vegetation, detecting oil spills and pollution as well as many other tasks.” The …

Finger Vein Identity Recognition in “Negligible Time” using ArrayFire

John Melonakos ArrayFire, Case Studies, Computer Vision, CUDA, Open Source Leave a Comment

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 …

I am AI at NVIDIA & ArrayFire

John Melonakos AI, ArrayFire, Events Leave a Comment

I am an explorer.I am a helper.I am a healer.I am a visionary.I am a builder.I am even the narrator of the story you are watching.And the composer of the music.I am AI. These words are from the first 3:11 min of Jensen’s keynote today. Yesterday was another amazing NVIDIA GTC kicking off. Fully remote due to coronavirus, I still enjoyed the content without the travel. I encourage you to watch the video below. A masterpiece. ArrayFire has participated and exhibited at every in-person NVIDIA GTC, ever since the 2008 NVIDIA NVISION conference, click the link for a nice flashback. NVIDIA has come a long way from that 0:37 clip and the 3:11 clip Jensen showed above. At NVISION, we …

Thrombotherm: Analyzing Blood Platelets with ArrayFire

John Melonakos ArrayFire, Case Studies, Image Processing Leave a Comment

The Thrombotherm project by Catalysts is developing a method to analyze blood platelets by means of cell microscopy in real time and to classify them according to their activation state. ArrayFire enabled faster overall research project times and real-time analysis on video data. This project represents an enormous extension of thrombocyte diagnotics, especially through significantly accelerated analysis times. Faster analyses enabled university research collaborators from the University of Applied Sciences OÖ and the Ludwig Boltzmann Institute to shorten research project times. The project has three main parts: Detect cell morphology in real-time Thombotherm makes it possible to mathematically determine and categorize the cell boundaries by means of transmitted light microscopy. The software distinguishes between “fried-egg”-shaped cells and “spider”-shaped cells. This is used …

Feature detection and tracking using ArrayFire

Brian Kloppenborg ArrayFire, C/C++, Image Processing Leave a Comment

A few weeks ago we added some computer vision functionality to our open source ArrayFire GPU computing library. Specifically, we implemented the FAST feature extractor, BRIEF feature point descriptor, ORB multi-resolution scale invariant feature extractor, and a Hamming distance function. When combined, these functions enable you to find features in videos (or images) and track them between successive frames.