Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions oneapi-rs/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "oneapi-rs"
version = "0.0.9"
version = "0.1.0"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
Expand All @@ -9,4 +9,4 @@ repository.workspace = true
homepage.workspace = true

[dependencies]
sycl-rs = { version = "0.0.9", path = "../sycl/sycl-rs" }
sycl-rs = { version = "0.1.0", path = "../sycl/sycl-rs" }
3 changes: 2 additions & 1 deletion sycl/sycl-rs/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "sycl-rs"
version = "0.0.9"
version = "0.1.0"
description = "Rust bindings for SYCL"
documentation = "https://docs.rs/sycl-rs"
keywords = ["oneapi", "sycl", "gpu"]
Expand All @@ -10,6 +10,7 @@ categories = [
"memory-management",
"science"]
publish = ["crates-io"]
readme = "README.md"

# Inherit settings from the root workspace
edition.workspace = true
Expand Down
84 changes: 84 additions & 0 deletions sycl/sycl-rs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# SYCL-rs

Rust bindings for SYCL and the Intel oneAPI programming environment.

> [!WARNING]
> SYCL-rs is experimental, has not released version 0.1.0, and is not ready
> for production use. Its API may change without notice.

## Supported platforms

The tested configuration is:

- Linux
- Intel oneAPI Toolkit 2026.1
- A SYCL device supported by the installed oneAPI runtime

Other operating systems, oneAPI releases, and SYCL implementations are not
currently tested or supported.

## Prerequisites

- A Rust toolchain with Rust 2024 edition support
- Intel oneAPI Toolkit 2026.1, including the DPC++/C++ compiler and SYCL runtime

Initialize the oneAPI environment before building or running the project:

```bash
source /opt/intel/oneapi/setvars.sh
```

Replace `/opt/intel/oneapi` if the toolkit is installed elsewhere. The build
also accepts an explicit compiler through `ONEAPI_CXX`; the compiler must
support C++17 and SYCL.

## Installation

Add your required dependencies with Cargo:

```bash
cargo add sycl-rs
```

Make sure to source the `setvars.sh` file before building your project.

```bash
source /opt/intel/oneapi/setvars.sh
cargo build
```

## Quick start

Build the workspace from source:
```bash
git clone https://github.com/oneapi-src/oneapi-rs.git
cd oneapi-rs
source /opt/intel/oneapi/setvars.sh
cargo build --workspace
```

List the SYCL devices visible to the runtime:

```bash
source /opt/intel/oneapi/setvars.sh
cargo run -p sycl-rs --example sycl-ls
```

The kernel launch examples demonstrate allocation, runtime kernel compilation,
kernel submission, and copying results back to the host:

```bash
cargo run -p sycl-rs --example kernel_launch
```

## Documentation

- [API documentation](https://docs.rs/sycl_rs/)
- [Examples](sycl/sycl-rs/examples)
- [Contributing](CONTRIBUTING.md)
- [Changelog](CHANGELOG.md)

## License

Licensed under either the [Apache License 2.0](LICENSE-APACHE) or the
[MIT License](LICENSE-MIT), at your option.