This repository provides the following resources for working with MN-Core:
- Examples for the MN-Core SDK
- Resources for setting up the MN-Core SDK environment
- Resources for managing bare-metal machines equipped with MN-Core
The MN-Core SDK enables developers to build and optimize programs for the MN-Core architecture. The SDK consists of two primary components:
- MLSDK: Provides PyTorch-compatible interface for developing machine learning models.
- HPCSDK: Provides a general-purpose programming environment in C/C++ with OpenCL-compatible and directive-based programming models. Currently, only MNCL, an OpenCL-compatible environment, is provided.
Programs developed with the MN-Core SDK are portable. They can run on MN-Core hardware and emulators, and MLSDK programs can also run on GPUs. This flexibility allows you to verify the compatibility of your programs quickly even without direct access to MN-Core hardware.
We recommend installing the MN-Core SDK environment using Docker for a consistent setup. Please refer to the following documentation for detailed installation instructions:
When using MLSDK, the following documentation will be helpful:
When testing HPCSDK, please refer to the header files included with the SDK. Note that HPCSDK is currently in an alpha stage.
Programs developed with the MN-Core SDK can run in the following three environments:
The MN-Core SDK includes an MN-Core emulator that runs programs without access to actual hardware. This allows you to easily evaluate portability to MN-Core and estimate expected performance.
The usage of the emulator differs between MLSDK and HPCSDK. Please refer to their respective documentation for details.
If you have access to an MN-Core 2 Devkit or MN-Server 2, you can run programs on actual MN-Core hardware instead of the emulator. These systems allow you to execute programs within a Docker container built using the instructions in sdk/0.5/README.md.
The Preferred Computing Platform (PFCP) also provides environments equipped with MN-Core processors.
You can use pre-built Docker images on PFCP that are equivalent to images built with sdk/0.5/README.md.
This makes it straightforward to deploy MN-Core applications on PFCP after verifying them locally with the emulator or on bare-metal systems.
For instructions on using MN-Core on PFCP, please refer to the PFCP documentation.
apt/-- Resources to install MN-Core packages viaaptadd_mncore_packages.sh-- Script to add the APT repository in your Ubuntu system
sdk/-- MN-Core SDK0.4/-- MN-Core SDK 0.4mncore-sdk-minimal.Dockerfile-- Dockerfile to build the MN-Core SDK 0.4 minimal Docker image with dependenciesmncore-sdk-full.Dockerfile-- Dockerfile to build the MN-Core SDK 0.4 "full" Docker image with extra packagescreate_dev_ctr.sh-- Script to start an MN-Core SDK 0.4 development container
0.5/-- MN-Core SDK 0.5mncore-sdk-minimal.Dockerfile-- Dockerfile to build the MN-Core SDK 0.5 minimal Docker image with dependenciesmncore-sdk-full.Dockerfile-- Dockerfile to build the MN-Core SDK 0.5 "full" Docker image with extra packagescreate_dev_ctr.sh-- Script to start an MN-Core SDK 0.5 development container
examples/-- Examples for the latest MLSDK