Math Processor

Abacus Semiconductor has developed a math processor to accelerate the execution of mathematical functions typically used in traditional HPC as well as in AI and ML. Unlike existing math accelerators such as GPGPUs, we support all relevant data types natively (integer and floating-point of a variety of register widths, and we also have added RISC-V cores to assist in exception handling. We have also added tags to results to bring floating point math precision closer to Prof. John Gustafsonā€™s work on POSITs.

The Math Processor is a massively parallel processor that accelerates all openCL and openACC applications.

Using existing math APIs will help replacing handwritten C or assembly code for better performance, easier portability and drastically simplified maintenance while providing better performance and scalability, along with higher precision and accuracy.

Our Math Processors can be used in traditional HPC such as FEA/FEM, solving n-body problems, for Computational Fluid Dynamics (CFD), mechanical, thermal and electrical simulations including signal integrity and power integrity problems, modeling and a variety of other applications, and in more modern HPC fields such as in AI for training and inference. Transforms, vector and matrix math as well as tensor math are specifically implemented in an optimized manner.

We paid special attention to Fused-Multiply-Accumulate (FMA) performance across a wide range of lengths of sequential FMAs in indexed data entities, which is a prerequisite for matrix and tensor operations, and for transforms such as Fourier Transforms or their discrete versions, Discrete Fourier Transforms. While others focus on the FMA alone, we made sure we avoid collisions and contention in data access to the elements that need to be fetched and written back.

These comprehensive subsystems include the Math Processors, firmware, software and APIs as well as SDK plugins. With regards to APIs we support our own native data and instruction formats as well as openCL and openACC. For applications that rely on CUDA we support those function calls and translate them into our native data and instruction formats. The ASC-MP is also referred to as the ASC29400 family.