ODE SpaceCloud® OS v1.0.1 release notes

ODE SpaceCloud® OS v1.0.1 release notes and specifications. Published: 2020-08-11

ODE SpaceCloud® OS v1.0.1  release notes

v1.0.1 – August  11, 2020

This is the first point update release of the Unibap SpaceCloud® Services (USS) Operating System (SpaceCloud® OS). Version 1.0.1 add OpenCL 1.2 and more performance through additional GPU accelerated libraries. This release is the baseline for the ongoing development of the SpaceCloud® API framework for orchestration of Applications in space with Unibap’s features SafetyChip and SafetyBoot. Both SpaceCloud® API and SafetyChip/SafetyBoot is developed with support from the European Space Agency.

SpaceCloud® OS version 1.0.1 for the ODE contain the following updates from v1.0.0:

  • Stand alone disk image release that replaces v1.0.0.
  • 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.
  • Based on Ubuntu server 18.04.4  Long Term Support (LTS), AMD64  with Unibap package control and kernel drivers.
  • Upgraded to Linux kernel 5.4.52-generic. Low latency version available from Unibap APT repository.
  • Upgraded to MESA 20.1.4 with OpenCL 1.2 support (no OCL image support)
  • Upgraded libclc to support OpenCL printf
  • Added OpenCL C++ headers
  • Added OpenCL accelerated SPARSE linear algebra library (clSPARSE) with tests
  • Added Halide image processing language with GPU support
  • Upgraded clpeak to also benchmark GPU Integer compute Fast 24bit.
  •  Upgraded OpenCV to 4.1.2+dfsg-7 with Qt, python2, python3, AMD clBLAS, AMD clFFT support
  • Added optimized Intel MKL BLAS (cpu with AVX instructions)
  • Added flashrom utility for BIOS upgrade (optional to Unibap Coreboot ODE BIOS version 4.8.1)
  • Upgrading Unibap quality assurance test package to version 0.0.6
  • Added nload utility for network traffic monitoring

Included since v1.0.0

  • Default US English language
  • Default US international keyboard setting
  • Default UTC/ZULU time
  • 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
  • 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 clBLAS and 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
  • Example source code for CPU and GPU accelerated TensorFlow lite inference
  • Example source code for CPU accelerated pyTorch inference
  • Approximately 230 MB RAM with X-server (GUI) running at boot and 180 MB RAM without X-server (GUI)

Benchmarks and conformance

The system performance is the same as release v1.0.0.

Conformance of v1.0.1 OpenCL

OpenCL conformance is done using OpenCL CTS and piglit.

[708/708] skip: 13, pass: 689, fail: 6
Thank you for running Piglit!

The piglit conformance report in HTML format 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) Integer compute Fast 24bit (GIOPS)
float 5,2 87,2 77,6 5,6 17,89 88.13
float2 5,28 84,52 77,38 5,6 17,87 87.80
float4 5,3 84,25 77,09 5,59 17,85 87.12
float8 5,21 83,67 76,41 5,58 17,87 85.87
float16 3,5 82,48 75,17 5,55 17,84 86.96

Transfer bandwidth (GBPS)

enqueueWriteBuffer : 2.81

enqueueReadBuffer : 2.86

enqueueWriteBuffer non-blocking : 2.81

enqueueReadBuffer non-blocking : 2.86

enqueueMapBuffer(for read) : 2829-13

memcpy from mapped ptr : 2.86

enqueueUnmap(after write) : 2860.81

memcpy to mapped ptr : 2.81

Kernel launch latency : 483.15 us

Core package summary table

Optimized packages:

AMD SOC

Linux kernel

5.4.52

Linux spacecloud-sceos-unit 5.4.52-050452-generic #202007160732uabcustom SMP Mon Jul 20 00:56:44 CEST 2020 x86_64 x86_64 x86_64 GNU/Linux

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+git2020722

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.4

Upgraded MESA 3D/Compute.

OpenCL 1.2 conformance.

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.

libclsparse

0.11.2.0

upgrade to libclsparse

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-7

upgrade to OpenCV with support for AMD clBLAS and clFFT. Supports Qt and python2 and python3.

Halide

202007041

upgrade package to halide

Intel MKL

2020.1.217-2

Intel MKL with AVX instruction support for AMD Jaguar

nlohman-json3

3.1.2-2

Support library for json files.

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.6

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

power scripts

0.1

gpu_high.sh

gpu_auto.sh

gpu_low.sh