Skip to content

Commit cfeb78f

Browse files
author
The rustc-josh-sync Cronjob Bot
committed
Merge ref '1be6b13be73d' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 1be6b13be73dc12e98e51b403add4c41a0b77759 Filtered ref: c2f66d5 Upstream diff: rust-lang/rust@d3e1ccd...1be6b13 This merge was created using https://github.com/rust-lang/josh-sync.
2 parents 9bea2e7 + c2f66d5 commit cfeb78f

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/offload/usage.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff 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")]
1113
extern crate libc;
1214
#[cfg(target_os = "linux")]
1315
use libc::c_char;
1416

17+
#[cfg(target_os = "linux")]
1518
use 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")]
5664
unsafe 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]
6372
pub extern "gpu-kernel" fn kernel_1(x: *mut [f64; 256]) {
6473
unsafe { (*x)[0] = 21.0 };
6574
}

0 commit comments

Comments
 (0)