ODE SpaceCloud® OS v1.0.0 release notes

ODE SpaceCloud® OS v1.0.0 release notes and specifications. Published: 2020-06-24

ODE SpaceCloud® OS v1.0.0  release notes

v1.0.0 – June 24, 2020

This is the first software release of the Unibap SpaceCloud® Services (USS) Operating System (OS). Version 1.0.0 aims to test the ground works for the SpaceCloud® framework in preparation for the API and application development framework release.

SpaceCloud® OS version 1.0.0 for the ODE contain the following features and software:

  • Based on Ubuntu server 18.04.4  Long Term Support (LTS), AMD64  with Unibap package control and kernel drivers
  • Expandable 55 GB btrfs core filesystem (to fit onto eMMC, sd-cards, SSD drives, USB thumb drives etc). Use gparted live cd to expand it to your drive size.
  • Default US English language
  • Default US international keyboard setting
  • Default UTC/ZULU time
  • Upgraded kernel to Long Term Support (LTS) kernel 5.4.44 with amdgpu kernel driver support for AMD 1st and 2nd generation SOC (eKabini/Mullins). Optimized for AMD Jaguar CPU architecture (AVX instructions etc.).
  • Support for user configurable AMD GPU dynamic power module (DPM) interface
  • Enabled background ECC/EDAC AMD SOC RAM memory scrubbing at default 97650 bytes per second
  • PCI bus parity ECC enabled
  • User access to Unibap management tool (unibap-programmer)
  • User access to Unibap health monitoring tools
  • In addition to Unibap optimized LTS kernel 5.4.x support, this OS distribution is  also compatible with newer non-optimized official Ubuntu kernel-ppa mainline AMD64 kernels >= 5.6.1
  • Support for hardware encoding/decoding of up to two Full HD, 1920×1080 pixel H.264 video (using libva and gstreamer)
  • Perf support using AMD Model Specific Registers (MSR) used for debugging, program execution tracing, computer performance monitoring, and toggling certain CPU feature
  • CPU mitigations default turned off in  bootloader for higher performance
  • Latest official LLVM, version 10.0.1 and Mesa 20.1.1 for maximum AMD compute support in OpenCL and assembler.
  • OpenGL 4.6 compatible
  • OpenGL ES 3.2 compatible
  • Vulkan 1.2 compatible
  • GPU Compute library support for Fast Fourier Transforms (FFT, AMD clFFT)
  • GPU Compute library support for Basic Linear Algebra Subprograms (BLAS, AMD clBlast)
  • CPU and GPU (OpenCL) support for Machine Learning using Tensor Flow/TensorFlow lite
  • CPU support for Machine Learning using  pyTorch.
  • CPU and GPU acceleration of libgpuarray
  • OpenCV 4.1.2 optimized for AMD Jaguar CPU architecture and support for AMD clBLAS and AMD clFFT.
  • Example source code for CPU and GPU accelerated TensorFlow lite inference
  • Example source code for CPU accelerated pyTorch inference
  • Various conformance test programs for compute validation
  • Approximately 230 MB RAM with X-server (GUI) running at boot and 180 MB RAM without X-server (GUI)
  • Many optimized packages ontop of standard Ubuntu versions.

Benchmarks and conformance

We have received many requests regarding benchmarks relating to our products.

The ODE performance is very closely represented by the iX5-100 solution, please see further details on the performance overview here.

We have performed a significant amount of benchmarking and conformance testing on this release, primarily on throughput, raw compute, and conformance to standards. These tests have been done with a focus on image processing, signal processing, machine learning etc.

OpenCL throughput and bandwidth

Mixbench test (OpenCL)

The results from mixbench openCL testing is shown is plots here for reference (for FP16, FP32, FP64).

clFFT data example

Testing performance of processing a 4 Mpixel buffer with clFFT in single precision (FP32) using the included test,

$ cl_fft2d-2048×2048

Processing image on GPU with average time 0.1 seconds, corresponding to 10 fps throughput.

OpenCL conformance

In addition to benchmark, a piglit generated OpenCL conformance report can be downloaded here.

clpeak openCL profiling benchmark

Global memory bandwidth (GBPS) Single-precision compute (GFLOPS) Half-precision compute (GFLOPS) Double-precision compute (GFLOPS) Integer compute (GIOPS)
float 5,2 87,2 77,6 5,6 17,89
float2 5,28 84,52 77,38 5,6 17,87
float4 5,3 84,25 77,09 5,59 17,85
float8 5,21 83,67 76,41 5,58 17,87
float16 3,5 82,48 75,17 5,55 17,84

Transfer bandwidth (GBPS)

enqueueWriteBuffer : 2.60

enqueueReadBuffer : 2.53

enqueueMapBuffer(for read) : 3013.76

memcpy from mapped ptr : 2.53

enqueueUnmap(after write) : 2982.42

memcpy to mapped ptr : 2.60

Kernel launch latency : 483.15 us

Core package summary table

Optimized packages:

AMD SOC

Linux kernel

5.4.44

Linux version 5.4.44-050444-generic (root@ubuntu1804-rocm-runner) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #202006030331+uabcustomQ7

OS

Ubuntu Server 18.04.4

Ubuntu Server 18.04.4 base installation, with update/upgrade

Unibap unilink kernel driver

2.2.5, git hash b7cd56c3

Unibap kernel drivers

LLVM

10.0.1

upgrade of LLVM

gcc

7.5.0 and 9.3.0

libclc

0.2.0+git20200215

upgrade of libclc

libdrm

2.4.101

upgrade of libdrm

libegl

1.3.1

new package libegl (backported)

libgles

1.3.1

new package libgles (backported)

libglvnd0

1.3.1

upgrade of libglvnd (backported)

libglx

1.3.1

new package of libglx (backported)

libopengl

1.3.1

new package libopengl (backported)

libllvmspirvlib

0.2.0/10.0.0.1

new package of libllvmspriv (backported)

llvm-spirv

0.2.0/10.0.0.1

new package of llvm-spirv (backported)

spirv-headers

1.5.1

new package spirv-headers (backported)

spirv-tools

2020.2

new package spirv-tools (backported)

sparse

0.6.1

new package sparse (backported)

sparse-test-inspection

0.6.1

new package sparse-test-inspection (backported)

Mesa

20.1.1

Upgraded MESA 3D/Compute.

Note. NO WORKING OPENCL_IMAGE_SUPPRORT. Must use normal buffers as image buffers

piglit

git20200611

OpenGL/OpenCL conformance test

libarchive

3.4.0

upgrade to libarchive

cmake

3.16.1

upgrade to cmake

half

2.1.0

new package half (backported)

go

1.14

upgrade to go language

glslang

8.13

new package glslang (backported)

radeontop

1.2-gitf2d55d6

upgrade to radeontop

clpeak

1.1.0-rc2+git9216faf

new package clpeak

libclfft

2.12.3

upgrade to libclfft

libclblast

1.5.1

new package libclblast (backported)

clBLAS routines for OpenCL 1.1

libcltune

2.7.0

upgrade to libcltune

libclblas

2.13.1

upgrade to AMD clBLAS to work on Q7/Mesa/Clover.

apitrace

0.9

upgrade to apitrace

gegl

0.4.6-1

upgrade to gegl

libgpuarray

0.7.6-5

upgrade to libgpuarray

pygpu

0.7.6-5

upgrade to pygpu

opencv

4.1.2+dfsg-6

upgrade to OpenCV with support for AMD clBLAS and clFFT.

Machine learning tools

tensorflow

2.2

Unibap built package with Intel MKL support and optimized flags.

tensorflow lite

git hash: 2ad5792853

Unibap built package, manually installed includes and dynamic library.

tensorflow  lite gpu delegate

git hash: 2ad5792853

patched by Unibap for GPU support with OpenCL. Manually installed includes and dynamic library.

torch

1.4.0

Standard CPU version

torchvision

0.5.0

Standard version

Examples, demos etc.

unibap-eda-info.sh

1.0

Display ECC/EDAC background scrubbing info

unibap-health

1.4.8

unibap-programmer, unibap_health_monitor, unibap_sensor_server

qa-spacecloud-q7

0.0.5

Unibap clBLAS, clFFT, clBlast compute test program for quality assurance.

power scripts

0.1

gpu_high.sh

gpu_auto.sh

gpu_low.sh