File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1818namespace sycl_shims ::kernel_bundle {
1919std::unique_ptr<SourceKernelBundle> create_kernel_bundle_from_source (Context const &ctxt,
2020 rust::Str source);
21-
2221std::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
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff line change @@ -24,4 +24,8 @@ std::unique_ptr<SourceKernelBundle> create_kernel_bundle_from_source(Context con
2424std::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
Original file line number Diff line number Diff 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 > { }
You can’t perform that action at this time.
0 commit comments