Announcing our Palette Software Developer Preview Release!
Low code development tools that focus on the ML, for the fastest solution to silicon!
- Any ML model, from framework to silicon
- Any pipeline, from python to silicon
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. 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 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. 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 be targeted on for computation and those layers that are targeted for execution on a 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 second major component is the computer vision pipeline creation tools, to incorporate the user’s compiled ML model(s) from the ML Model Developer, but leveraging the SiMa.ai provide example pipelines, library plug-ins that define the pre and post processing functions that configure the data as well as SiMa.ai example ML models. Using a simple Json file with a sequence of commands or editing a SiMa.ai example Json file, the use defines the input data streams from PCIe, Ethernet or other peripheral, the computer vision pre-processing functions, ML model, the post processing and analytic application software, to create a gstreamer pipeline. Each pipeline element can be built with functional parameters for each plug-in defined. The developer can choose to utilize an existing pipeline from SiMa’s library to modify that pipeline and/or it’s parameters to deploy and test on the MLSoC platform. The Palette software then builds executable images using auto code generation tools for each of the embedded video and application processors contained in the MLSoC for deployment to the silicon for evaluation and test. This process can be quickly iterated to modify the pipeline, it’s components or to tune the pipeline and it’s 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 Software Developer Preview Release!
Development tools for the fastest ML solution to silicon!
How does Palette Developer Preview 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