The Base container images directory provides a collection of Dockerfiles and build scripts to construct Docker images that can be used for AI-framework/platform combinations.
These images are optimized for different frameworks for platforms such as AGX, ALVEO, ARM, CPU, and GPU. There is also the implementation of images which can execute native TensorFlow, for each platform. Additionally, there is the simple Client base image. Each directory in the repository represents a specific AI-framework/platform combination and contains two main files:
Dockerfile
- Contains all the instructions for Docker to build the image. This includes the base image to start from and the necessary dependencies.docker_build.sh
- A Bash script that can be executed to build and push the Docker image to the Docker registry.
All the images are already built and available in the aimilefth/aate_container_templates DockerHub repository. However, if you need to rebuild any of the templates or add a new base container image, follow these instructions:
- Navigate to the appropriate directory:
Each sub-directory contains its own
Dockerfile
and build script. To build and push a Docker image for a particular platform, navigate to the appropriate directory. For example:
cd AGX
- Modify the
docker_build.sh
script: Change the docker image name inside thedocker_build.sh
script to reflect your custom image name. For example:
docker buildx build -f ./Dockerfile --platform linux/arm64 --tag your_dockerhub_username/custom_image_name:agx --push .
- Execute the build script: Run the modified docker_build.sh script to build and push the Docker image to your Docker registry.
bash docker_build.sh
- Update Dockerfiles used in Composer flow: If you change the name of the base container image, ensure that you update the names of the Dockerfiles used in the Composer flow to match your new base container images. For example, if you change the AGX base container image, update the FROM directive in the Dockerfile.agx example as follows:
FROM your_dockerhub_username/custom_image_name:agx
Alternatively, you can use the docker_build_all.sh script to build all the images for all platforms. Ensure you have updated the script to reflect your custom image names if necessary.
The Docker image for the AGX platform is based on the Nvidia L4T TensorFlow Docker image. This image includes TensorFlow with support for Nvidia's AGX platform and support for the ONNX Runtime framework. More information on the AGX/README.md file.
The Docker image for the Alveo platform is based on the Xilinx Vitis AI Docker image. This image includes Vitis AI with support for Xilinx's Alveo FPGAs. More information on the ALVEO/README.md file.
The Docker image for the ARM platform is based on the Arm Software Developer's TensorFlow Docker image. This image includes TensorFlow with support for ARM's Neoverse platform, enabling the TensorFlow Lite framework.
The Docker image for the Client side is based on the official Python Docker image. This image includes Python and essential libraries required for the client side.
The Docker image for the CPU platform is based on the Intel-optimized TensorFlow Docker image. This image includes TensorFlow optimized for Intel CPUs, , enabling the TensorFlow Lite framework.
The Docker image for the GPU platform is based on the official TensorFlow Docker image with GPU support. This image includes TensorFlow with GPU acceleration, with support for the ONNX Runtime framework.
These Docker images enable running native TensorFlow on the appropriate platform.
The Docker images built from these Dockerfiles are pushed to this Docker registry under the name aimilefth/aate_container_templates:, where is replaced with the name of the specific hardware platform (e.g., agx, alveo, etc).
Platform | TF version | PT version | AI-Framework | Device | Tested |
---|---|---|---|---|---|
AGX | 2.7 | 1.7 | ONNX Runtime 1.11.0 | Jetson AGX Xavier | Yes |
ALVEO | 2.3 | 1.7 | Vitis-AI 1.4.1 | ALVEO U280 | Yes |
ARM | 2.11 | 1.7 | TensorFlow Lite | Any ARM Device | Yes |
CPU | 2.11 | 1.7 | TensorFlow Lite | Any x86 Device | Yes |
GPU | 2.11 | 1.7 | ONNX Runtime 1.14.0 | Any Nvidia GPU | Yes |
AGX_TF | 2.7 | N/A | TensorFlow | Jetson AGX Xavier | Yes |
ARM_TF | 2.11 | N/A | TensorFlow | Any ARM Device | Yes |
CPU_TF | 2.11 | N/A | TensorFlow | Any x86 Device | Yes |
GPU_TF | 2.11 | N/A | TensorFlow | Any Nvidia GPU | Yes |
Client | N/A | N/A | N/A | Any x86/ARM Device | Yes |
More information on the individual README.md files on each subdirectory #ALVEO TF version is not upgradable (stuck on Vitis-AI 2.3) \