Software Ecosystem

    • Emulators

      • gdbsim

        This CPU emulator can be used as either a standalone functional emulator of Prodigy ISA or as part of cross-mode GDB allowing to debug Prodigy user mode application on any other host platform.

      • QEMU

        QEMU logo

        QEMU is a generic and opensource machine emulator and virtualizer. It supports both User-mode emulation and Full-system emulation.

    • Binary Tools

      • GNU Binutils

        GNU Binutils logo

        The GNU Binutils are a collection of binary tools to manipulate object files. Main tools in the collections are ld (linker) and as (assembler, known as GAS – GNU Assembler), but there are many more smaller tools like objdump (dump information about object files).

    • Debugging

      • GDB

        GDB logo

        GDB, the GNU Project debugger, allows you to see what is going on “inside” another program while it executes or what another program was doing at the moment it crashed.

        With GDB, a Prodigy application can be debugged in various scenarios: as a part of cross-toolchain using either functional simulator or QEMU as execution engine on non-Prodigy host; connecting to GDB server running on native or full-system-mode-emulation Linux/BSD kernel, from any supported host; or as a native Linux/BSD debugger.

      • OpenOCD

        “Open On-Chip Debugger” allows to connect to a target using low-level JTAG interface to help facilitate system bring-up and initial stages of very low-level debugging.

      • JTAG Debugger

        JTAG Debugger logo

        JTAG is more than debugging and programming. Processors use JTAG to provide access to their debug/emulation functions and all FPGAs and CPLDs use JTAG to provide access to their programming functions.

    • Compilers and Libraries

      • GCC

        GCC logo

        The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages (libstdc++,…).

        Existing since 1987, this compiler is a de-facto standard for almost every major CPU platform.

      • Glibc

        Glibc logo

        The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.

        The GNU C Library is designed to be a backwards compatible, portable, and high-performance ISO C library. It aims to follow all relevant standards including ISO C11, POSIX.1-2008, and IEEE 754-2008.

        The project was started circa 1988 and is almost 30 years old.

      • Musl

        Musl logo

        Musl is a C standard library implementation for Linux. Some of musl’s major advantages over glibc and uClibc/uClibc-ng are its size, correctness, static linking support, and clean code.

    • OS kernels and distro tools

      • Linux kernel

        Linux kernel logo

        The Linux kernel is a free and open-source, monolithic, Unix-like operating system kernel. It is deployed on a wide variety of computing systems, from personal computers, mobile devices, mainframes, and supercomputers[6] to embedded devices, such as routers, wireless access points, private branch exchanges, set-top boxes, FTA receivers, smart TVs, personal video recorders, and NAS appliances. Its availability, continuous development, and ongoing support have spawned a plethora of operating system distributions, commonly also called Linux.

      • Yocto Project (Open Embedded)

        Yocto Project (Open Embedded) logo

        The Yocto Project (YP) is an open-source collaboration project that helps developers create custom Linux-based systems regardless of the hardware architecture.

        The project provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices that can be used to create tailored Linux images for embedded and IOT devices, or anywhere a customized Linux OS is needed.

      • Buildroot

        Buildroot logo

        Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.

        Can handle everything: Cross-compilation toolchain, root filesystem generation, kernel image compilation and bootloader compilation.

        Thanks to its kernel-like menuconfig, gconfig and xconfig configuration interfaces, building a basic system with Buildroot is easy and typically takes 15-30 minutes.

    • Performance testing and optimization

      • SPEC’s Benchmarks

        SPEC’s Benchmarks logo

        Benchmark suites developed by The Standard Performance Evaluation Corporation (SPEC).

      • SPECint2006, 2017

        Test suite consists of 12 benchmark programs, designed to test exclusively the integer performance of the system.

      • SPECfp2006

        Test suite contains 17 benchmark programs, designed to evaluate the floating-point operations performance of the system.

      • SPECfp2017

        Test is organized in 2 suites: SPECrate 2017 Floating Point and SPECspeed 2017 Floating Point containing in total 23 benchmark programs, designed to evaluate the floating-point operations performance of the system.

      • Apache

        Apache logo

        Apache is the most widely used open-source cross-platform web server software. The Apache HTTP Server Project is part of the Apache Software Foundation.

      • MariaDB

        MariaDB logo

        MariaDB Server is one of the most popular open source relational databases. It’s made by the original developers of MySQL. MariaDB supports a lot of different storage engines.

      • SQLite

        SQLite logo

        SQLite is the most used database engine in the world. SQLite is a C-language library that implements a small, fast, self-contained, high reliability, full-featured SQL database engine.

      • MongoDB

        MongoDB logo

        MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. MongoDB is a NoSQL database program, which stores data in JSON-like documents with dynamic schema.

      • Python

        Python logo

        Python is an interpreted, high-level and general-purpose programming language. It is used successfully in thousands of real-world business applications around the world, including many large and mission critical systems.

      • Perl

        Perl logo

        Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. It runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large-scale development projects.

      • PHP

        PHP logo

        PHP is a popular open source general-purpose scripting language that is especially suited to web development and can be embedded into HTML.

      • Ruby

        Ruby logo

        Ruby is an interpreted, high-level and general-purpose programming language with a focus on simplicity and productivity.

      • Tcl

        Tcl logo

        Tcl is a high-level, general-purpose, interpreted, dynamic programming language. It is suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.

      • Java-JVM

        Java-JVM logo

        JVM (Java Virtual Machine) is an abstract machine. It is a specification that provides runtime environment in which java bytecode can be executed.

      • Git

        Git logo

        Git is an open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

      • Subversion, Svn

        Subversion, Svn logo

        Subversion (abbreviate Svn after its command name svn) is a software versioning and revision control system distributed as open source under the Apache License.

      • Sed

        Sed is a stream editor, which is used to perform basic text transformation on an input stream.

      • Gawk

        Gawk is the GNU implementation of Awk, a specialized programming language for the easy manipulation of formatted text, such as tables of data.

      • Grep

        Grep is a command-line utility for searching plain-text data sets for lines that match a regular expression.

      • Eigen Library

        Eigen Library logo

        Dense and Sparse BLAS - optimized using Tachyum vector and matrix instructions in standard and low precision modes.

        Dense and Sparse LAPACK - LU, QR, Cholesky, Eigenvector/Eigenvalue, SVD decompositions.

      • Real and Complex Eigensolvers for Large linear systems

        Real and Complex Eigensolvers for Large linear systems
								 logo

        Iterative methods, conjugate gradient and polynomial filtered Lanczos optimized using Tachyum BLAS and GEMM.

      • FFT Library

        Optimized using Tachyum vector and matrix.

      • ODE/ PDE numerical solvers

      • Pytorch

        Pytorch logo

        Activation & Loss Function – optimized utilizing Tachyum vector instructions in standard and low precision modes.

        Dense GEMM (General Matrix Multiply) library implemented utilizing Tachyum matrix instructions in standard and low precision modes, stochastic rounding, single and multithreaded.

        Custom Sparse GEMM library implemented utilizing Tachyum vector and matrix instructions.

        Convolutional and Dense operators implemented utilizing Tachyum matrix instructions in standard and low precision modes, including depthwise separable and pointwise convolutions.

        Circulant and Butterfly Convolutional and Dense operators implemented utilizing custom FFT (fast Fourier transform) for matrix multiplication.

      • TensorFlow

        TensorFlow logo

        Activation & Loss functions optimized utilizing Tachyum vector instructions in standard and low precision modes.

        Convolutional and Dense operators implemented utilizing Tachyum custom Eigen+GEMM libraries and Tachyum matrix instructions in standard and low precision modes.

      • TensorFlow Lite

        TensorFlow Lite logo

        INT8 quantized version of TensorFlow optimized utilizing Tachyum vector and matrix instructions in standard and low precision modes.

    • AI Frameworks Custom Extensions

      • Stochastic Rounding for BLAS-GEMM

        The BLAS, Basic Linear Algebra Subprograms are routines that provide standard building blocks for performing basic vector and matrix operations.

      • Mixed precision training

        Static and dynamic loss scaling.

      • Compression algorithms

        • Magnitude based block pruning

        • Lottery Ticket

    • AI Models

      • Image classification models

        Implemented in standard and low precision modes.

        • Resnet: Residual Networks.

        • MobileNet: Model designed to be used in mobile applications.

        • ShuffleNet: An extremely efficient convolutional neural network for mobile devices.

      • Object detection and semantic segmentation models

        Implemented in standard and low precision modes.

        • YOLO: A clever convolutional neural network (CNN) for doing object detection in real-time.

        • SSD

        • MaskRCNN: A deep neural network aimed to solve instance segmentation problem in machine learning or computer vision.

      • NLP Transformer Models

        NLP Transformer Models logo

        Implemented in standard and low precision modes utilizing compression and sparsity.

        • BERT: Bidirectional Encoder Representations from Transformers is a Transformer-based machine learning technique for NLP pre-training developed by Google.

        • Sparse Transformer: Transformer based architecture which utilises sparse factorizations of the attention matrix.

      • Scientific ML models, Physics Informed NN, Differentiable Programming

        • Neural ODE: Neural Ordinary Differential Equations.

        • Graph Neural ODE: A counterpart to GNNs (graph neural networks) where the input-output relationship is determined by a continuum of GNN layers, blending discrete topological structures and differential equations.

        • Neural PDE: Neural partial differential equation.

    • Binary Tools

      • LLVM

        LLVM logo

        Similarly to GNU Binutils, LLVM collection serves the same purpose but implemented within a scope of another open-source project.

    • Compilers and Libraries

      • Clang/LLVM

        Clang/LLVM logo

        The Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.

        Clang is considered to be a production quality C, Objective-C, C++ and Objective-C++ compiler. As example, Clang is used in production to build performance-critical software like Chrome or Firefox.

      • Newlib

        Newlib is a C library intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.

    • Boot loaders and monitors

      • UEFI

        UEFI logo

        UEFI stands for “Unified Extensible Firmware Interface.” The UEFI Specification defines a new model for the interface between personal-computer operating systems and platform firmware. The interface consists of data tables that contain platform-related information, plus boot and runtime service calls that are available to the operating system and its loader. Together, these provide a standard environment for booting an operating system and running pre-boot applications.

      • Coreboot

        Coreboot logo

        Coreboot is an extended firmware platform that delivers a lightning fast and secure boot experience on modern computers and embedded systems.

      • Linuxboot

        Linuxboot logo

        LinuxBoot is a firmware for modern servers that replaces specific firmware functionality like the UEFI DXE phase with a Linux kernel and runtime.

        Improves boot reliability by replacing lightly-tested firmware drivers with hardened Linux drivers.

        Improves boot time by removing unnecessary code.

        Allows customization of the initrd runtime to support site-specific needs (both device drivers as well as custom executables).

      • U-Boot

        U-Boot logo

        Das U-Boot (subtitled “the Universal Boot Loader” and often shortened to U-Boot) is an open-source, primary boot loader used in embedded devices to package the instructions to boot the device’s operating system kernel.

      • OpenBMC

        OpenBMC logo

        The OpenBMC project is a Linux Foundation collaborative open-source project whose goal is to produce an open-source implementation of the Baseboard Management Controllers (BMC) Firmware Stack. OpenBMC is a Linux distribution for BMCs meant to work across heterogeneous systems that include enterprise, high-performance computing (HPC), telecommunications, and cloud-scale data centers.

    • OS kernels and distro tools

      • FreeBSD kernel

        FreeBSD kernel logo

        FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

    • User software / Applications

      • OpenMP

        OpenMP logo

        A specification for a set of compiler directives, library routines, and environment variables that can be used to specify high-level parallelism in Fortran and C/C++ programs. OpenMP is managed by the OpenMP Architecture Review Board (OpenMP ARB).

    • AI Software

      • Molecular Dynamics and Deep Molecular Dynamics

        • Quantum Espresso

        • DeepMD

        • LAMMPS

      • Large scale NLP models utilizing sparsity and low precision modes

        • LongFormer

        • BigBird

        • Performer

        • DistilBERT

        • Q8BERT

      • Computer Vision

        • Vision Transformer
      • Object Detection in Video Streams

        • EfficientDet

        • DETR

      • Graph Neural Networks