diff --git a/README.md b/README.md index 9d55a0a..ab8e64d 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,10 @@ 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 @@ -22,7 +25,7 @@ The following platform and compiler combinations are currently tested in CI: * Windows with MSVC 14 * MacOS with GCC 13 -Other platforms and compilers should also work, as long as they have sufficient C++20 support. +Other platforms and compilers should also work, as long as they have sufficient C++20 support. Note that Clang versions prior to 17 do not currently work due to their incomplete CTAD support. ## Acknowlegments diff --git a/ci/render_cts_state.py b/ci/render_cts_state.py new file mode 100644 index 0000000..f6b53cd --- /dev/null +++ b/ci/render_cts_state.py @@ -0,0 +1,27 @@ +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'] + +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 CTS test suites passed') + +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..b37a533 --- /dev/null +++ b/resources/cts_state.svg @@ -0,0 +1,827 @@ + + + + + + + + 2024-12-24T22:21:09.332636 + image/svg+xml + + + Matplotlib v3.6.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +