The chimera gpnpu sdk

Develop, Simulate, Profile, and Deploy. The power of a code-driven processor with the convenience of no-code graph compilation.

Software development  toolkit

The Quadric Chimera Software Development Toolkit (SDK) is a comprehensive environment for the development of complex application code targeting the Chimera GPNPU. The Quadric SDK enables the mixing and matching of any data parallel algorithm whether it is expressed as machine learning graph or as traditional C++ code.
Chimera SDK

online or on premise

Users can access the full Chimera SDK online via our Quadric Developers Studio, preview available at https://studio.quadric.io/login. With a visual drag-n-drop front end, developers can mix and match pre-existing optimized libraries of C++ preprocessing and post-processing kernels with a variety of ready-made machine learning models to rapidly test out an application code chain. Or upload your own proprietary C++ code and machine learning models, compile them in the Quadric Chimera toolflow and profile on the cycle approximate model of the Chimera GPNPU.

Users can also download a complete Docker image of the Chimera SDK for deployment on private clouds or on-premise systems.

quadric chimera Graphcompiler

The Quadric Chimera Graph Compiler (CGC) is a powerful conversion and code optimization tool that inputs a machine learning inference model created from the leading ML training frameworks, performs numerous optimizations, and outputs an optimized C++ code representation of the ML graph utilizing the Chimera Compute Library (CCL) for later compilation by the Chimera LLVM C++ compiler.

Graph Import
CGC accepts input graphs in ONNX format for networks developed in PyTorch, TensorFlow or other frameworks. A number of optimizations are performed as part of the graph import phase:
• Graph simplification / canonicalization
• Constant propagation - removing operators with purely constant arguments, if possible
• Operator legalization / conversion – converting to GPNPU-specific forms of ML operators
The shape and structure of the network graph is optimized to simplify operators where possible. Compatibility checks are performed to determine if all operators are supported. When an unsupported or custom operator is present in the source graph, the user has the option to partition the graph around the custom operator, write a C++ model for the unsupported operator, and reintegrate the new custom operator C++ kernel with CCL code generated by CGC.

Graph and Memory Optimization
CGC creates a full intermediate representation of the ML graph and performs multiple passes of optimization with the twin aims of optimizing performance and memory bandwidth utilization.

Memory optimization techniques include:
• Tensor format layout analysis (both L2 and LRM)
• Array-level memory adapters & tensor shape transformations
• Bank conflict minimization, defragmentation
• Predictive weight prefetching

chimera LLVM C++ compiler & instruction set simulator

The Chimera LLVM C++ compiler utilizes the industry state of the art LLVM compiler infrastructure with a Quadric-specific code generation back end that emits assembly code specific to the Chimera instruction set.

The Chimera Instruction Set Simulator (ISS) is an executable model of the Chimera GPNPU core that is bundled with the Chimera SDK. The ISS can be utilized both in a standalone mode to profile and tune application code in isolation, or as a callable System C transaction level model bundled into a more comprehensive virtual prototype of an SoC where more accurate memory model behavior can be used to fine-tune your Chimera code more precisely.
Try our limited preview
© Copyright 2022  Quadric    All Rights Reserved     Privacy Policy
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram