From 5a0c42e1c0b6e91d1b09bdd2eb15dbc308ab4835 Mon Sep 17 00:00:00 2001 From: Fabian Knorr Date: Tue, 24 Dec 2024 22:21:38 +0100 Subject: [PATCH] Render CTS progress in README --- README.md | 6 +- ci/render_cts_state.py | 29 +++++++++ resources/cts_state.svg | 132 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 ci/render_cts_state.py create mode 100644 resources/cts_state.svg diff --git a/README.md b/README.md index c280e9b..34bb502 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,11 @@ SimSYCL is a single-threaded, synchronous, library-only implementation of the SYCL 2020 specification. It enables you to test your SYCL applications against simulated hardware of different characteristics and discover bugs with its extensive verification capabilities. -SimSYCL is in a very early stage of development - try it at your own risk! +## Implementation progress + +SimSYCL is still under development, but it already passes a large portion of the [SYCL Conformance Test Suite](https://github.com/KhronosGroup/SYCL-CTS): + +![SYCL spec conformance by CTS test suites passed](resources/cts_state.svg) ## Requirements diff --git a/ci/render_cts_state.py b/ci/render_cts_state.py new file mode 100644 index 0000000..a7f5139 --- /dev/null +++ b/ci/render_cts_state.py @@ -0,0 +1,29 @@ +import os + +import pandas as pd +from matplotlib import pyplot as plt + +os.chdir(os.path.join(os.path.dirname(__file__), os.path.pardir)) + +state = pd.read_csv('ci/cts_state.csv', delimiter=';') +counts = state.groupby('status').agg(count=('suite', 'size'))['count'].to_dict() + +labels = ['passed', 'run failed', 'build failed', 'not applicable'] +colors = ['#4a0', '#fa0', '#e44', '#aaa'] + +plt.rcParams['svg.fonttype'] = 'none' + +fig, ax = plt.subplots(figsize=(8, 0.6)) +left = 0 +for l, c in zip(labels, colors): + n = counts[l] + ax.barh(0, n, left=left, color=c, label=l) + ax.text(left + n/2, 0, str(n), ha='center', va='center', weight='bold') + left += n +ax.set_xlim(0, left) +ax.axis('off') +ax.set_title('SYCL spec conformance by number of CTS categories') + +fig.legend(loc='lower center', ncols=len(labels), + bbox_to_anchor=(0, -0.4, 1, 0.5), frameon=False) +fig.savefig('resources/cts_state.svg', bbox_inches='tight') diff --git a/resources/cts_state.svg b/resources/cts_state.svg new file mode 100644 index 0000000..780b6cc --- /dev/null +++ b/resources/cts_state.svg @@ -0,0 +1,132 @@ + + + + + + + + 2024-12-28T12:58:15.533658 + image/svg+xml + + + Matplotlib v3.6.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + 44 + + + 15 + + + 14 + + + 2 + + + SYCL spec conformance by number of CTS categories + + + + + + + + passed + + + + + + run failed + + + + + + build failed + + + + + + not applicable + + + + + + + + +