Skip to content

Commit 430cd92

Browse files
Add C++ get_kernel binding
1 parent dfebe00 commit 430cd92

4 files changed

Lines changed: 10 additions & 2 deletions

File tree

oneapi-rs-sys/include/kernel-bundle.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818
namespace sycl_shims::kernel_bundle {
1919
std::unique_ptr<SourceKernelBundle> create_kernel_bundle_from_source(Context const &ctxt,
2020
rust::Str source);
21-
2221
std::unique_ptr<ExecutableKernelBundle> build(std::unique_ptr<SourceKernelBundle> &source);
22+
std::unique_ptr<Kernel> get_kernel(std::unique_ptr<ExecutableKernelBundle> &, rust::Str);
2323
} // namespace sycl_shims::kernel_bundle

oneapi-rs-sys/src/kernel-bundle-sys.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ pub mod ffi {
2020
#[namespace = "sycl_shims"]
2121
type ExecutableKernelBundle = crate::types::ffi::ExecutableKernelBundle;
2222

23+
#[namespace = "sycl_shims"]
24+
type Kernel = crate::types::ffi::Kernel;
25+
2326
fn create_kernel_bundle_from_source(ctxt: &Context, source: &str)
2427
-> UniquePtr<SourceKernelBundle>;
25-
2628
fn build(source: &mut UniquePtr<SourceKernelBundle>) -> UniquePtr<ExecutableKernelBundle>;
29+
fn get_kernel(bundle: &mut UniquePtr<ExecutableKernelBundle>, name: &str) -> UniquePtr<Kernel>;
2730
}
2831
}

oneapi-rs-sys/src/kernel-bundle.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,8 @@ std::unique_ptr<SourceKernelBundle> create_kernel_bundle_from_source(Context con
2424
std::unique_ptr<ExecutableKernelBundle> build(std::unique_ptr<SourceKernelBundle> &source) {
2525
return std::make_unique<ExecutableKernelBundle>(syclexp::build(*source));
2626
}
27+
28+
std::unique_ptr<Kernel> get_kernel(std::unique_ptr<ExecutableKernelBundle> &bundle, rust::Str name) {
29+
return std::make_unique<Kernel>(bundle->ext_oneapi_get_kernel(static_cast<std::string const&>(name)));
30+
}
2731
} // namespace sycl_shims::kernel_bundle

oneapi-rs-sys/src/types-sys.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ pub mod ffi {
8585
impl UniquePtr<Context> {}
8686
impl UniquePtr<SourceKernelBundle> {}
8787
impl UniquePtr<ExecutableKernelBundle> {}
88+
impl UniquePtr<Kernel> {}
8889

8990
impl Vec<DevicePtr> {}
9091
impl Vec<PlatformPtr> {}

0 commit comments

Comments
 (0)