Skip to content

Commit

Permalink
Render CTS progress in readme
Browse files Browse the repository at this point in the history
  • Loading branch information
fknorr committed Dec 24, 2024
1 parent dffd390 commit d65b3b6
Show file tree
Hide file tree
Showing 3 changed files with 860 additions and 2 deletions.
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -22,7 +26,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
Expand Down
27 changes: 27 additions & 0 deletions ci/render_cts_state.py
Original file line number Diff line number Diff line change
@@ -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 suite count')

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')
Loading

0 comments on commit d65b3b6

Please sign in to comment.