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 |