Crate kn_cuda_eval
source ·Expand description
A Cuda CPU executor for neural network graphs from the kn_graph crate. The core type is CudaExecutor.
This crate is part of the Kyanite project, see its readme for more information. See system-requirements for how to set up the cuda libraries.
Quick demo
// load and optimize the graph
let graph = load_graph_from_onnx_path("test.onnx", false)?;
let graph = optimize_graph(&graph, Default::default());
// select a device
let device = Device::new(0);
// build an executor
let batch_size = 8;
let mut executor = CudaExecutor::new(device, &graph, batch_size);
// evaluate the graph with some inputs, get the outputs back
let inputs = [DTensor::F32(Tensor::zeros(vec![batch_size, 16]))];
let outputs: &[DTensor] = executor.evaluate(&inputs);Modules
- The autokernel infrastructure and specific kernels.
- On-device tensor data structure.
- The main executor type and the compiler for it.
- Tensor utility.
- A utility to automatically choose between CPU and GPU evaluation.
- Shape utilities.
- Testing and debugging infrastructure.
- Miscellaneous utilities.
Structs
- Export the Device type for convenience: often an explicit dependency on the
kn_cuda_syscrate is not needed. A cuda device index.