Module dfdx::feature_flags

source ·
Expand description

Information about the available feature flags.

Default features:

  • “std”
  • “fast-alloc”
  • “cpu-par-matmul”

Quick start

Cuda (with cudnn):

dfdx = { version = "...", default-features = false, features = ["std", "fast-alloc", "cuda", "cudnn"]}

Cpu:

dfdx = { version = "...", default-features = false, features = ["std", "fast-alloc", "cpu"]}

“std”

Enabled by default

Enables usage of the standard library. Otherwise no_std_compat is used.

Example:

dfdx = { version = "...", default-features = false }

Note that allocations are necessary, so the no_std_compat dependency looks like:

no-std-compat = { version = "0.4.1", features = [ "alloc", "compat_hash" ] }

“fast-alloc”

Enabled by default

Turns off fallible allocations for Cpu, which is substantially faster.

“no-std”

Used to enable “no-std-compat” and turn on ![no_std].

Example:

dfdx = { version = "...", default-features = false, features = ["no-std"] }

“cuda”

Enables the Cuda device and other goodies. Must have the cuda toolkit and nvcc installed on your system.

Example:

dfdx = { version = "...", features = ["cuda"] }

“cudnn”

This requires the “cuda” feature, and enables some cudnn optimizations. This is purely for performance, no other methods/structs are introduced with this feature.

Example:

dfdx = { version = "...", features = ["cudnn"] }

“cpu”

Used to enable using gemm for matmul operations.

“numpy”

Enables saving and loading arrays to .npy files, and saving and loading nn to .npz files.

Example:

dfdx = { version = "...", features = ["numpy"] }

“safetensors”

Enables saving and loading tensors/nn to .safetensors files.

Example:

dfdx = { version = "...", features = ["safetensors"] }

“nightly”

Enables using all features that currently require the nightly rust compiler.

Example:

dfdx = { version = "...", features = ["nightly"] }