File tree Expand file tree Collapse file tree 2 files changed +11
-2
lines changed
Expand file tree Collapse file tree 2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 1- d3e1ccdf40ae7b7a6dc81edc073d80dad7b66f75
1+ 1be6b13be73dc12e98e51b403add4c41a0b77759
Original file line number Diff line number Diff line change @@ -5,13 +5,16 @@ We currently work on launching the following Rust kernel on the GPU. To follow a
55
66``` rust
77#![feature(abi_gpu_kernel)]
8+ #![feature(rustc_attrs)]
9+ #![feature(core_intrinsics)]
810#![no_std]
911
1012#[cfg(target_os = " linux" )]
1113extern crate libc;
1214#[cfg(target_os = " linux" )]
1315use libc :: c_char;
1416
17+ #[cfg(target_os = " linux" )]
1518use core :: mem;
1619
1720#[panic_handler]
@@ -38,7 +41,7 @@ fn main() {
3841 }
3942
4043 unsafe {
41- kernel_1 (array_c );
44+ kernel (array_c );
4245 }
4346 core :: hint :: black_box (& array_c );
4447 unsafe {
@@ -52,6 +55,11 @@ fn main() {
5255 }
5356}
5457
58+ #[inline(never)]
59+ unsafe fn kernel (x : * mut [f64 ; 256 ]) {
60+ core :: intrinsics :: offload (kernel_1 , (x ,))
61+ }
62+
5563#[cfg(target_os = " linux" )]
5664unsafe extern " C" {
5765 pub fn kernel_1 (array_b : * mut [f64 ; 256 ]);
@@ -60,6 +68,7 @@ unsafe extern "C" {
6068#[cfg(not(target_os = " linux" ))]
6169#[unsafe (no_mangle)]
6270#[inline(never)]
71+ #[rustc_offload_kernel]
6372pub extern " gpu-kernel" fn kernel_1 (x : * mut [f64 ; 256 ]) {
6473 unsafe { (* x )[0 ] = 21.0 };
6574}
You can’t perform that action at this time.
0 commit comments