gpufft-cuda-sys 0.1.3

Raw FFI bindings to cuFFT + CUDA Runtime. Internal plumbing for gpufft.
# gpufft-cuda-sys

Raw FFI bindings to [cuFFT](https://docs.nvidia.com/cuda/cufft/) and the CUDA
Runtime API, generated by `bindgen` against the system CUDA Toolkit. This is
internal plumbing for [`gpufft`](https://crates.io/crates/gpufft); you almost
certainly want that crate, not this one.

[![crates.io](https://img.shields.io/crates/v/gpufft-cuda-sys.svg)](https://crates.io/crates/gpufft-cuda-sys)
[![docs.rs](https://img.shields.io/docsrs/gpufft-cuda-sys)](https://docs.rs/gpufft-cuda-sys)
[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/alejandro-soto-franco/gpufft/blob/main/LICENSE-APACHE)

## What this crate is

- `bindgen`-generated declarations for cuFFT (`cufft.h`) and the subset of
  the CUDA Runtime API (`cuda_runtime.h`) that `gpufft` needs for device
  allocation, host-device memcpy, and plan dispatch.
- A build script that links `cudart` and `cufft` from the system CUDA
  Toolkit.

## What this crate is not

- A safe Rust API. All symbols are `unsafe`. Use `gpufft` for the typed
  trait surface.
- A vendored CUDA distribution. This crate requires the CUDA Toolkit and
  a matching NVIDIA driver on the build and run hosts.

## Build prerequisites

- CUDA Toolkit 12.x or later, with `cufft.h` and `cuda_runtime.h`
  reachable.
- A libclang installation that `bindgen` can load (`libclang.so`).
- NVIDIA driver matching the CUDA runtime at execution time.

The build script searches `CUDA_PATH`, `CUDA_HOME`, then `/usr/local/cuda`.
Set one of the first two to point at a non-default install.

## Licensing

`gpufft-cuda-sys` itself is Apache-2.0. cuFFT and the CUDA Runtime ship
under NVIDIA's CUDA Toolkit EULA and are not redistributed by this crate.

Repository: <https://github.com/alejandro-soto-franco/gpufft>