Struct rustacuda::module::Module[][src]

pub struct Module { /* fields omitted */ }
Expand description

A compiled CUDA module, loaded into a context.

Implementations

Load a module from the given file name into the current context.

The given file should be either a cubin file, a ptx file, or a fatbin file such as those produced by nvcc.

Example

use rustacuda::module::Module;
use std::ffi::CString;

let filename = CString::new("./resources/add.ptx")?;
let module = Module::load_from_file(&filename)?;

Load a module from a CStr.

This is useful in combination with include_str!, to include the device code into the compiled executable.

The given CStr must contain the bytes of a cubin file, a ptx file or a fatbin file such as those produced by nvcc.

Example

use rustacuda::module::Module;
use std::ffi::CString;

let image = CString::new(include_str!("../resources/add.ptx"))?;
let module = Module::load_from_string(&image)?;

Get a reference to a global symbol, which can then be copied to/from.

Panics:

This function panics if the size of the symbol is not the same as the mem::sizeof<T>().

Examples

use rustacuda::module::Module;
use std::ffi::CString;

let ptx = CString::new(include_str!("../resources/add.ptx"))?;
let module = Module::load_from_string(&ptx)?;
let name = CString::new("my_constant")?;
let symbol = module.get_global::<u32>(&name)?;
let mut host_const = 0;
symbol.copy_to(&mut host_const)?;
assert_eq!(314, host_const);

Get a reference to a kernel function which can then be launched.

Examples

use rustacuda::module::Module;
use std::ffi::CString;

let ptx = CString::new(include_str!("../resources/add.ptx"))?;
let module = Module::load_from_string(&ptx)?;
let name = CString::new("sum")?;
let function = module.get_function(&name)?;

Destroy a Module, returning an error.

Destroying a module can return errors from previous asynchronous work. This function destroys the given module and returns the error and the un-destroyed module on failure.

Example

use rustacuda::module::Module;
use std::ffi::CString;

let ptx = CString::new(include_str!("../resources/add.ptx"))?;
let module = Module::load_from_string(&ptx)?;
match Module::drop(module) {
    Ok(()) => println!("Successfully destroyed"),
    Err((e, module)) => {
        println!("Failed to destroy module: {:?}", e);
        // Do something with module
    },
}

Trait Implementations

Formats the value using the given formatter. Read more

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.