AmbiSense SDK: Engineered to Scale AI Applications Seamlessly
AmbiSense SDK: Engineered to Scale AI Applications Seamlessly
What is SDK?
A Software Development Kit (SDK) is a set of integrated tools that application developers use to build applications for specific platforms or programming languages. Every SDK is tightly associated with its hardware platform and plays a major role in hardware adaptability, enabling application developers to utilize hardware features without needing an in-depth understanding of the hardware itself. As hardware developers, it’s essential to provide APIs, calls, and detailed documentation to ensure smooth hardware access for application developers.
Application developers primarily focus on ease of use within the SDK, integrated functions, and APIs to achieve their goals efficiently, rather than worrying about the hardware intricacies.
Key Elements of an SDK:
- Integrated Development Environment (IDE): A framework that acts as a visual editor, containing a compiler, interpreter, profiler, debugger, and tools for writing, testing, and debugging code.
- Operating System (OS): OS components like BSP, BIOS, Bootloader, and system calls form an interface between hardware and applications, supporting application development on specific hardware.
- Hardware Abstraction Layer APIs (HAL-APIs): HAL-APIs act as an interface between the OS and hardware, providing hardware functionalities as APIs for developers to use without needing to understand specific hardware details. Often referred to as hardware libraries.
- Application Programming Interfaces (APIs): These allow developers to access software applications, features, and toolchains for specific hardware to compile application workloads.
- Sample Applications: These provide use-cases and sample applications to help developers understand application flows and enable quick adaptation to their specific use-cases.
- Documentation: Essential for SDK adaptation, it includes an installation guide, steps for new application development, and instructions on available APIs, libraries, and drivers.
- Compiler: Tools for compiling AI workloads on specific boards, often as a toolchain within the SDK.
- Profiler: Tools for analyzing application performance to identify optimization areas or potential issues.
- Debugger: Tools for identifying errors and tracking program flow.
- Testing Tools: Auxiliary tools for sample recording, simulation, and testing frameworks.
Types of SDKs
SDKs are typically free to use and available for immediate download. They can be broadly classified into two categories:
- Platform-Specific SDKs: Designed for specific operating systems, like Android SDK for Android apps or iOS SDK for iOS apps.
- Cross-Platform SDKs: Enable application development across multiple platforms.
Further classifications include:
- Hardware SDKs: Built for specific hardware platforms.
- Web SDKs: Allow integration of functionalities into web applications without additional packages.
- Cloud SDKs: Tools for managing cloud projects and interacting with Cloud APIs.
- Gaming SDKs (GDK): Specialized SDKs for video game development on consoles.
- Mobile SDKs: For building platform-specific mobile applications (Android, iOS, etc.).
Why SDKs are Essential
If you’re a hardware company providing custom solutions, a feature-rich SDK can enable application developers to fully utilize your hardware. SDKs can also streamline hardware integration with customers’ existing tech stacks, making it easier to market your product, close deals, and shorten the sales cycle.
Ambient SDK Overview
Ambient has developed a full-fledged custom SDK for its own hardware (GPX10). The SDK has been developed using one of the highly used IDE frameworks (eclipse) following all norms to be the best and highly adaptable SDK for custom microprocessor.
Ambient SDK comes under Hardware SDK which is part of Platform-specific SDKs in custom SDK platform. The features in SDK are built from scratch on top of eclipse “C” environment which provides excellent debugging capability for both MX8 (custom core) and ARM based calls.
Core SDK Features:
- IDE: Eclipse IDE with C programming and Python plugins, supporting AI inference and, in the future, AI training using popular frameworks.
- OS: Supports Windows OS and FreeRTOS, with future support planned for additional OS.
- Drivers & Libraries: Efficiently called in Eclipse for seamless integration and testing. Prebuilt optimized methods are available for common peripherals.
- HAL APIs: Prebuilt, optimized libraries (e.g., aBLAS, aDNN, aDSP) support AI applications on GPX10, making the SDK highly programmable and versatile.
- Compiler: Ambient’s custom compiler optimizes AI inference at the edge and supports popular frameworks like Keras, TensorFlow, TFLite, and ONNX.
- Profilers: Integrated to help developers analyze performance and address power, flow, and latency issues—crucial for edge processing.
- Debugger: A robust debugger for MX8 and ARM calls, allowing end-to-end debugging of data pre-processing and AI operations.
- Simulator: Supports AI inference and provides early warnings for unsupported operators or model sizes, essential for edge device compatibility.
- Sample Programs: Optimized applications for AI use-cases like anomaly detection, sound applications, and computer vision, complete with application notes for ease of development.
Additional Features
- AI Training Toolchain: Supports custom AI model building for edge devices and offers guidance on optimal algorithm selection.
- Sample Collection Toolchain: Allows easy data collection from sensors, microphones, and cameras, with automated cleaning tools for realistic training data.
- Documentation: Comprehensive resources guide developers from SDK installation to model deployment, providing end-to-end support.
- Testing Toolchain: Provides an easy testing setup for the DVK, simplifying code and model verification.
Optional SDK Features
- Data Vault: Storage for raw sensor data and access to Ambient-collected data.
- Model Zoo: A collection of optimized custom models available for tuning.
Support: Ambient’s team offers 24/7 assistance, ensuring that help is just an email or call away.