Palette 1.0 Software
SiMa’s low code, integrated environment for edge ML application development , to create, build and deploy edge ML solutions on SiMa’s MLSoC silicon. Palette uses a Command Line Interface (CLI) that runs on any x86 desktop, (MAC, PC, Linux) with a rich api set for automating your ML build process.
Download the latest Palette software update on our Developer Site
A snapshot of new features in Palette 1.0 Software
- Advanced model calibration and quantization techniques to improve accuracy and performance, including min-max, moving average and mean square error quantization techniques.
- Support for large tensor models utilizing external memory
- Increased library support for ML models, plug-ins and pipelines
- Embedded Linux Yocto 4.0 modular BSP support for customizing and integrating into customer commercial builds
- Compile and evaluate Any ML model, from framework to silicon without coding!
- Build and evaluate Any pipeline, using python code to silicon with limited coding!
- Deploy and manage edge ML applications executing on silicon
- Support python and full Gstreamer pipeline development using plug-in libraries
- Customize embedded Linux run-time environment for hosting edge ML applications
SiMa.ai’s Palette software addresses ML developer’s steep learning curve by avoiding the arcane practice of embedded programming. Palette software is a unified suite of tools, functioning much like an ML developer’s familiar cloud equivalent environments, with pushbutton software commands to create, build and deploy on multiple devices. Palette can manage all dependencies and configuration issues within a container environment while securely communicating to the edge devices. This approach still enables embedded programmers flexibility to perform low level optimization of the code. The reaction from our ML developers was “This is exactly what I am looking for!”
Palette is the delivery mechanism for Any, 10x, and Pushbutton.
Any Model: Palette’s ML compiler supports virtually any framework and compiles across heterogeneous processors, providing a layer-by-layer targeting of those compute resources with the necessary precision to achieve accurate results running on SiMa’s MLSoC silicon.
Any Pipeline: Automated path from python to MLSoC silicon is supported with the ability to cross compile from computer vision pipelines on cloud and x86 hosted platforms to run on the MLSoC silicon with minimal code development.
Any Application: Any full ML application is supported on the Yocto Linux platform running on board the Quad ARM processors
The Palette ML compiler can exclusively target the high performance MLA processor to achieve 10X performance over typical compiled results on other platforms. Palette’s ML compiler and patented static scheduling approach eliminates stalls, minimizes data movement, caching and improves utilization of our ultra dense machine learning tiled architecture. This combination produces not only a high TOPS/watt rating, our FPS/watt efficiency is 10x times better than competing compiled solutions that often resort to hand coded solutions.
We designed our innovative software front-end to automatically partition and schedule your entire application across all of the MLSoC™ compute subsystems. For ML models, we created a suite of specialized and generalized optimization and scheduling algorithms for our back-end compiler. These algorithms automatically convert your ML network into highly optimized assembly code that runs on the Machine Learning Accelerator (MLA). No manual intervention needed for improved performance.
Palette Software Functional Description
The Palette Software Platform provides an integrated development environment for full stack ML application development on a host that can be easily cross-compiled to the MLSoC target silicon, eliminating the need for ML developers to do their algorithm porting on the embedded platform. This cross compilation frees the developer to utilize the desktop as a convenient development platform, contained in a Docker hosted image that contains all of the tools in a single package for full stack ML development. A Push-button build enables the cross compilation to create binary images for the heterogeneous target processors contained in the MLSoC silicon. Using the device manager CLI deploys these images to the device, where they are unpacked, verified and initiated to execute the resulting builds. Device manager commands also manage and control the debugging and logging of events on the MLSoC for real-time monitoring by the host development platform. The deployment capabilities can support a large number of devices simultaneously, creating a deployment capability that can extend a developers MLOps environment to deploy, execute and gather statistics back from the edge device(s). To understand the flow for creating ML applications using Palette, we have a simplified flow that describes the major components we utilize to create, build and deploy an ML application on the MLSoC silicon platform.
Develop an ML Model
ML Model Developer incorporates a parser, quantizer and multi-mode compiler to generate executable code for the Machine Learning Architecture (MLA). The parser, based on open source TVM, can receive neural networks defined in a wide variety of NN frameworks, providing the capability to support Any ML network. The ML Model development tool performs graph transformations to produce a network graph used for quantization and auto-partitioning. The auto-partitioning identifies through quantization those layers that will utilize our Machine Learning Accelerator (MLA) for computation and those layers that are targeted for execution on a DSP or CPU core. The resulting graph network with quantization defined is then compiled with an advanced SiMa.ai proprietary compiler for memory allocation, code generation and scheduling, producing an executable for use with the MLSoC. Those layers auto-partitioned to CPU are compiled using TVM’s ARM compiler. A Json file is generated specifying the sequence of the MLA and ARM code execution to compute the network.
Develop an ML Enabled Computer Vision Pipeline
The next major Palette component is the computer vision pipeline creation tool, that creates a complete computer vision pipeline incorporating the user’s compiled ML model(s). Leveraging SiMa.ai provided example pipelines, the developer can modify it to incorporate the new model and add library plug-ins that define its pre and post processing functions by editing the SiMa.ai provided Json file. The user then adds a sequence of commands that define the input data streams from PCIe, Ethernet or other peripherals using this same Json file. Each pipeline element can be built with functional parameters for each defined plug-in. The developer can choose to utilize an existing pipeline from SiMa’s library and modify the pipeline and/or its parameters or create a new pipeline using the new model and library plug-ins with associated parameters for incorporation into the pipeline. The pipeline, with its desired computer vision pre-processing functions, desired ML model, post processing and analytic application software, is utilized to create a new pipeline. The Palette software then builds executable images using auto code generation tools for all of the embedded video and application processors contained in the MLSoC for deployment to silicon for evaluation and test. This process can be quickly iterated to modify the pipeline, its components or tune the pipeline using its parameters to achieve the desired system requirements.
Deploy and run an ML Model on the MLSoC device
The third major component is the deployment and device management tool. Palette provides a deployment command line capability to connect to the development board environment, configure and update the development board and download the ML application pipeline executables to the board. Utilizing a secure link from the host development to the targeted MLSoC device(s), users can issue commands and scripts to the device manager that can download, unpackage and install the application pipelines, then execute, stop and update the execution pipeline parameters. Additional command scripts enable the user to debug the software execution on the device and stream to the host platform logs of the MLSoC code execution. The secure connection is utilized to monitor the execution, extract metrics and can provide connectivity to a production host MLOps server/cloud solution that can manage the edge MLSoC device(s).
Announcing our Palette 1.0 Software Production Release!
Development tools for the fastest ML solution to silicon!
How does Palette Production Release help developers today?
Our Palette platform offers:
- Faster time to value. Understand tools flow, features and capabilities. Build, create and deploy in minutes.
- Versatility. Tackle any model, any computer vision problem imaginable. Auto-partition and compile across MLA and ARM processors.
- Simplicity. Automation is critical to ML development at the edge, eliminating the need for hand coding with push button ease.
- Performance. Exponential performance gains beat legacy solutions designed for the data center.
To receive more information on Palette Software please fill out the form and our SiMa.ai team will get back to you