Palette 1.2 Software

SiMa’s low code, command line, integrated environment for edge ML application development, to create, build and deploy edge ML solutions on SiMa’s MLSoC silicon.

Palette 1.2 software update is available on our Developer Site

A snapshot of new features in Palette 1.2 Software Production release

  • Application developers can integrate the MLSoC machine learning platform into existing C++ applications utilizing C/C++ co-processing APIs.
  • Palette supports native Windows installation.

  • Improved quantization with additional new schemes and accuracy modes.

Also Featuring:

    • Increased library support for ML models, plug-ins and applications.
    • Expanded multi-camera support over PCIe and Ethernet for multi-streaming applications.
    • Compile and evaluate any ML model, from ML framework to silicon.
    • Build applications using Python scripting or GStreamer code on’s MLSoC.
    • Enhance your GStreamer applications with plug-in libraries.
    • Deploy and manage edge ML applications using Palette tools.
    • Evaluate the KPI performance of ML models and pipelines.
    • Customize embedded Linux run-time environment for hosting edge ML applications.
    • Support for creating functional pipelines on target using Python APIs.’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 software, tools, and libraries designed to enable developers to create, build and deploy applications 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.

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 automated toolchain not only produces a high TOPS/watt rating, but our FPS/watt efficiency is 10x times better than competing compiled solutions that often resort to hand coding models to silicon.

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 PC that can be easily cross-compiled to the MLSoC target silicon host ARM Processor, dramatically simplifying the process for ML developers to do their algorithm porting on the MLSoC 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 application packages for the heterogeneous target processors contained in the MLSoC silicon. Using the device manager Command Line Interface (CLI) deploys these application packages to the device, where they are unpacked, verified, installed and initiated to execute the resulting build. 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 comput
ation 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 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. Palette 1.2 supports three sets of programming APIs and methodologies for pipeline creation and application development.

  1. Functional pipelines using Python scripting to incorporate the pre and post processing functions around the compiled ML models using SiMa Python APIs. There are examples of pipelines using the SiMa Python APIs provided as a guide for developers to create their own performant ML pipelines using Python scripts running on the MLSoC.
  2. GStreamer optimized pipelines that leverage the provided example pipelines, library plug-ins that define the pre and post processing functions as well as example ML models. Using a simple JSON file with a sequence of commands or editing a 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 its 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, its components or to tune the pipeline and its parameters to achieve the desired system requirements.
  3. Host-side C/C++ APIs, or GStreamer plugins provide the embedded developer a methodology to integrate SiMa’s MLSoC as a co-processor into existing applications. Co-processor enables developers to leverage SiMa’s heterogeneous compute and accelerate their existing deployments by offloading portions (or all) of the application to the MLSoC via PCIe.
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 executable files 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).

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. Get your pipelines running quickly using Python scripting.
  • Model Versatility. Tackle any sensor data set, model, any computer vision problem imaginable. Auto-partition and compile across MLA and Quad-core ARM Subsystem with integrated cache.
  • Application Versatility.  Integrate any C/C++ host application, library or function using our C/C++ APIs to quickly bring the total solution into an integrated production environment.
  • 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 learn about, see a demonstration or evaluate our Palette Software, please fill out the form and our team will provide you access.