use cudarc::nvrtc::{compile_ptx_with_opts, CompileError, CompileOptions};
fn main() -> Result<(), CompileError> {
let opts = CompileOptions {
ftz: Some(true),
prec_div: Some(false),
prec_sqrt: Some(false),
fmad: Some(true),
..Default::default()
};
let _ = compile_ptx_with_opts(
"
extern \"C\" __global__ void sin_kernel(float *out, const float *inp, int numel) {
int i = blockIdx.x * blockDim.x + threadIdx.x;
if (i < numel) {
out[i] = sin(inp[i]);
}
}",
opts,
)?;
println!("Compilation succeeded!");
Ok(())
}