gitextract_tey_ubja/ ├── .cargo/ │ └── config.toml ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── ci_cuda.yaml │ ├── maturin.yml │ ├── python.yml │ ├── rust-ci.yml │ └── trufflehog.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── Makefile ├── README.md ├── candle-book/ │ ├── .gitignore │ ├── CONTRIBUTING.md │ ├── Cargo.toml │ ├── book.toml │ └── src/ │ ├── README.md │ ├── SUMMARY.md │ ├── advanced/ │ │ └── mkl.md │ ├── apps/ │ │ ├── README.md │ │ ├── desktop.md │ │ ├── rest.md │ │ └── wasm.md │ ├── chapter_1.md │ ├── cuda/ │ │ ├── README.md │ │ ├── porting.md │ │ └── writing.md │ ├── error_manage.md │ ├── guide/ │ │ ├── cheatsheet.md │ │ ├── hello_world.md │ │ ├── installation.md │ │ └── mnist/ │ │ ├── intro.md │ │ ├── modeling.md │ │ ├── saving_loading.md │ │ └── training.md │ ├── inference/ │ │ ├── cuda/ │ │ │ ├── README.md │ │ │ ├── porting.md │ │ │ └── writing.md │ │ ├── hub.md │ │ └── inference.md │ ├── lib.rs │ ├── simplified.rs │ ├── tracing.md │ └── training/ │ ├── finetuning.md │ ├── mnist.md │ ├── serialization.md │ ├── simplified.md │ └── training.md ├── candle-core/ │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── benches/ │ │ ├── bench_main.rs │ │ └── benchmarks/ │ │ ├── affine.rs │ │ ├── binary.rs │ │ ├── broadcast.rs │ │ ├── conv_transpose2d.rs │ │ ├── copy.rs │ │ ├── matmul.rs │ │ ├── mod.rs │ │ ├── qmatmul.rs │ │ ├── random.rs │ │ ├── reduce.rs │ │ ├── unary.rs │ │ └── where_cond.rs │ ├── examples/ │ │ ├── basics.rs │ │ ├── cuda_basics.rs │ │ ├── cuda_sum_benchmark.rs │ │ └── metal_basics.rs │ ├── src/ │ │ ├── accelerate.rs │ │ ├── backend.rs │ │ ├── backprop.rs │ │ ├── conv.rs │ │ ├── convert.rs │ │ ├── cpu/ │ │ │ ├── avx.rs │ │ │ ├── erf.rs │ │ │ ├── kernels.rs │ │ │ ├── mod.rs │ │ │ ├── neon.rs │ │ │ └── simd128.rs │ │ ├── cpu_backend/ │ │ │ ├── conv2d.rs │ │ │ ├── mod.rs │ │ │ └── utils.rs │ │ ├── cuda_backend/ │ │ │ ├── cudnn.rs │ │ │ ├── device.rs │ │ │ ├── error.rs │ │ │ ├── mod.rs │ │ │ └── utils.rs │ │ ├── custom_op.rs │ │ ├── device.rs │ │ ├── display.rs │ │ ├── dtype.rs │ │ ├── dummy_cuda_backend.rs │ │ ├── dummy_dtype.rs │ │ ├── dummy_metal_backend.rs │ │ ├── error.rs │ │ ├── indexer.rs │ │ ├── layout.rs │ │ ├── lib.rs │ │ ├── metal_backend/ │ │ │ ├── device.rs │ │ │ └── mod.rs │ │ ├── mkl.rs │ │ ├── npy.rs │ │ ├── op.rs │ │ ├── pickle.rs │ │ ├── quantized/ │ │ │ ├── avx.rs │ │ │ ├── cuda.rs │ │ │ ├── dummy_cuda.rs │ │ │ ├── dummy_metal.rs │ │ │ ├── ggml_file.rs │ │ │ ├── gguf_file.rs │ │ │ ├── imatrix_file.rs │ │ │ ├── k_quants.rs │ │ │ ├── metal.rs │ │ │ ├── mod.rs │ │ │ ├── neon.rs │ │ │ ├── simd128.rs │ │ │ ├── tokenizer.rs │ │ │ └── utils.rs │ │ ├── safetensors.rs │ │ ├── scalar.rs │ │ ├── shape.rs │ │ ├── sort.rs │ │ ├── storage.rs │ │ ├── streaming.rs │ │ ├── strided_index.rs │ │ ├── tensor.rs │ │ ├── tensor_cat.rs │ │ ├── test_utils.rs │ │ ├── utils.rs │ │ └── variable.rs │ └── tests/ │ ├── bilinear_tests.rs │ ├── conv_tests.rs │ ├── custom_op_tests.rs │ ├── display_tests.rs │ ├── fortran_tensor_3d.pth │ ├── grad_tests.rs │ ├── indexing_tests.rs │ ├── layout_tests.rs │ ├── matmul_tests.rs │ ├── npy.py │ ├── pool_tests.rs │ ├── pth.py │ ├── pth_tests.rs │ ├── quantized_tests.rs │ ├── serialization_tests.rs │ ├── tensor_tests.rs │ ├── test.npy │ ├── test.pt │ └── test_with_key.pt ├── candle-datasets/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── batcher.rs │ ├── hub.rs │ ├── lib.rs │ ├── nlp/ │ │ ├── mod.rs │ │ └── tinystories.rs │ └── vision/ │ ├── cifar.rs │ ├── fashion_mnist.rs │ ├── mnist.rs │ └── mod.rs ├── candle-examples/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── buildtime_downloader.rs │ ├── examples/ │ │ ├── based/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── beit/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── bert/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── bert_single_file_binary/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── bigcode/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── blip/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── chatglm/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── chinese_clip/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── clip/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── codegeex4-9b/ │ │ │ ├── README.org │ │ │ └── main.rs │ │ ├── colpali/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── convmixer/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── convnext/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── csm/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── voices.safetensors │ │ ├── custom-ops/ │ │ │ ├── README.md │ │ │ ├── cuda_kernels.rs │ │ │ ├── kernels/ │ │ │ │ ├── layernorm_kernels.cu │ │ │ │ └── reduction_utils.cuh │ │ │ └── main.rs │ │ ├── debertav2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── deepseekv2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── depth_anything_v2/ │ │ │ ├── README.md │ │ │ ├── color_map.rs │ │ │ └── main.rs │ │ ├── dinov2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── dinov2reg4/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── distilbert/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── efficientnet/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── efficientvit/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── encodec/ │ │ │ ├── README.md │ │ │ ├── audio_io.rs │ │ │ ├── jfk-codes.safetensors │ │ │ └── main.rs │ │ ├── eva2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── falcon/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── fastvit/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── flux/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── t5_tokenizer.py │ │ ├── gemma/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── gguf-tokenizer.rs │ │ ├── glm4/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── granite/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── granitemoehybrid/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── gte-qwen/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── helium/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── hiera/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── jina-bert/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── llama/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── llama2-c/ │ │ │ ├── main.rs │ │ │ └── training.rs │ │ ├── llama_multiprocess/ │ │ │ ├── main.rs │ │ │ └── model.rs │ │ ├── llava/ │ │ │ ├── constants.rs │ │ │ ├── conversation.rs │ │ │ ├── image_processor.rs │ │ │ ├── main.rs │ │ │ └── readme.md │ │ ├── mamba/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mamba-minimal/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── model.rs │ │ ├── mamba2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── marian-mt/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── python/ │ │ │ ├── convert_slow_tokenizer.py │ │ │ └── requirements.txt │ │ ├── metavoice/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mimi/ │ │ │ ├── README.md │ │ │ ├── audio_io.rs │ │ │ └── main.rs │ │ ├── mistral/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mixtral/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mnist-training/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mobileclip/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mobilenetv4/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── mobileone/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── modernbert/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── moondream/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── musicgen/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── musicgen_model.rs │ │ ├── nomic-bert/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── nvembed_v2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── olmo/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── onnx/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── onnx-llm/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── onnx_basics.rs │ │ ├── orpheus/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── paddleocr-vl/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── paligemma/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── parler-tts/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── phi/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── pixtral/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-gemma/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-glm4/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-lfm2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-phi/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-qwen2-instruct/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-qwen3/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-qwen3-moe/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── quantized-t5/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── qwen/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── recurrent-gemma/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── reinforcement-learning/ │ │ │ ├── README.md │ │ │ ├── atari_wrappers.py │ │ │ ├── ddpg.rs │ │ │ ├── dqn.rs │ │ │ ├── gym_env.rs │ │ │ ├── main.rs │ │ │ ├── policy_gradient.rs │ │ │ └── vec_gym_env.rs │ │ ├── replit-code/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── repvgg/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── resnet/ │ │ │ ├── README.md │ │ │ ├── export_models.py │ │ │ └── main.rs │ │ ├── rwkv/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── segformer/ │ │ │ ├── README.md │ │ │ ├── assets/ │ │ │ │ └── labels.json │ │ │ └── main.rs │ │ ├── segment-anything/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── siglip/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── silero-vad/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── smollm3/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── snac/ │ │ │ ├── audio_io.rs │ │ │ └── main.rs │ │ ├── splade/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── stable-diffusion/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── stable-diffusion-3/ │ │ │ ├── README.md │ │ │ ├── clip.rs │ │ │ ├── main.rs │ │ │ ├── sampling.rs │ │ │ └── vae.rs │ │ ├── stable-lm/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── starcoder2/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── stella-en-v5/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── t5/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── trocr/ │ │ │ ├── image_processor.rs │ │ │ ├── main.rs │ │ │ └── readme.md │ │ ├── vgg/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── vit/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── voxtral/ │ │ │ ├── README.md │ │ │ ├── download.rs │ │ │ ├── main.rs │ │ │ ├── melfilters128.bytes │ │ │ └── model.rs │ │ ├── whisper/ │ │ │ ├── README.md │ │ │ ├── extract_weights.py │ │ │ ├── main.rs │ │ │ ├── melfilters.bytes │ │ │ ├── melfilters128.bytes │ │ │ └── multilingual.rs │ │ ├── whisper-microphone/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── multilingual.rs │ │ ├── wuerstchen/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── xlm-roberta/ │ │ │ ├── Readme.md │ │ │ └── main.rs │ │ ├── yi/ │ │ │ ├── README.md │ │ │ └── main.rs │ │ ├── yolo-v3/ │ │ │ ├── README.md │ │ │ ├── darknet.rs │ │ │ ├── extract-weights.py │ │ │ ├── main.rs │ │ │ └── yolo-v3.cfg │ │ ├── yolo-v8/ │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── model.rs │ │ └── z_image/ │ │ ├── README.md │ │ └── main.rs │ └── src/ │ ├── audio.rs │ ├── bs1770.rs │ ├── chat_template.rs │ ├── coco_classes.rs │ ├── imagenet.rs │ ├── lib.rs │ ├── token_output_stream.rs │ └── wav.rs ├── candle-flash-attn/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── kernels/ │ │ ├── alibi.h │ │ ├── block_info.h │ │ ├── dropout.h │ │ ├── error.h │ │ ├── flash.h │ │ ├── flash_api.cu │ │ ├── flash_fwd_hdim128_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim128_bf16_sm80.cu │ │ ├── flash_fwd_hdim128_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim128_fp16_sm80.cu │ │ ├── flash_fwd_hdim160_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim160_bf16_sm80.cu │ │ ├── flash_fwd_hdim160_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim160_fp16_sm80.cu │ │ ├── flash_fwd_hdim192_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim192_bf16_sm80.cu │ │ ├── flash_fwd_hdim192_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim192_fp16_sm80.cu │ │ ├── flash_fwd_hdim224_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim224_bf16_sm80.cu │ │ ├── flash_fwd_hdim224_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim224_fp16_sm80.cu │ │ ├── flash_fwd_hdim256_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim256_bf16_sm80.cu │ │ ├── flash_fwd_hdim256_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim256_fp16_sm80.cu │ │ ├── flash_fwd_hdim32_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim32_bf16_sm80.cu │ │ ├── flash_fwd_hdim32_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim32_fp16_sm80.cu │ │ ├── flash_fwd_hdim64_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim64_bf16_sm80.cu │ │ ├── flash_fwd_hdim64_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim64_fp16_sm80.cu │ │ ├── flash_fwd_hdim96_bf16_causal_sm80.cu │ │ ├── flash_fwd_hdim96_bf16_sm80.cu │ │ ├── flash_fwd_hdim96_fp16_causal_sm80.cu │ │ ├── flash_fwd_hdim96_fp16_sm80.cu │ │ ├── flash_fwd_kernel.h │ │ ├── flash_fwd_launch_template.h │ │ ├── hardware_info.h │ │ ├── kernel_helpers.h │ │ ├── kernel_traits.h │ │ ├── kernel_traits_sm90.h │ │ ├── kernels.h │ │ ├── mask.h │ │ ├── philox.cuh │ │ ├── rotary.h │ │ ├── softmax.h │ │ ├── static_switch.h │ │ └── utils.h │ ├── src/ │ │ ├── ffi.rs │ │ └── lib.rs │ └── tests/ │ └── flash_attn_tests.rs ├── candle-flash-attn-v3/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── hkernel/ │ │ ├── combine.h │ │ ├── copy_paged_sm90_tma.hpp │ │ ├── copy_paged_sm90_tma_cutlass35.hpp │ │ ├── copy_paged_sm90_tma_cutlass36.hpp │ │ ├── epilogue_fwd_sm90_tma.hpp │ │ ├── flash.h │ │ ├── flash_api.cpp │ │ ├── flash_api.cu │ │ ├── flash_fwd_hdim128_bf16_gqa16_sm90.cu │ │ ├── flash_fwd_hdim128_bf16_gqa2_sm90.cu │ │ ├── flash_fwd_hdim128_bf16_gqa32_sm90.cu │ │ ├── flash_fwd_hdim128_bf16_gqa4_sm90.cu │ │ ├── flash_fwd_hdim128_bf16_gqa8_sm90.cu │ │ ├── flash_fwd_hdim128_bf16_sm90.cu │ │ ├── flash_fwd_hdim128_e4m3_gqa16_sm90.cu │ │ ├── flash_fwd_hdim128_e4m3_gqa2_sm90.cu │ │ ├── flash_fwd_hdim128_e4m3_gqa32_sm90.cu │ │ ├── flash_fwd_hdim128_e4m3_gqa4_sm90.cu │ │ ├── flash_fwd_hdim128_e4m3_gqa8_sm90.cu │ │ ├── flash_fwd_hdim128_e4m3_sm90.cu │ │ ├── flash_fwd_hdim128_fp16_gqa16_sm90.cu │ │ ├── flash_fwd_hdim128_fp16_gqa2_sm90.cu │ │ ├── flash_fwd_hdim128_fp16_gqa32_sm90.cu │ │ ├── flash_fwd_hdim128_fp16_gqa4_sm90.cu │ │ ├── flash_fwd_hdim128_fp16_gqa8_sm90.cu │ │ ├── flash_fwd_hdim128_fp16_sm90.cu │ │ ├── flash_fwd_hdim256_bf16_gqa16_sm90.cu │ │ ├── flash_fwd_hdim256_bf16_gqa2_sm90.cu │ │ ├── flash_fwd_hdim256_bf16_gqa32_sm90.cu │ │ ├── flash_fwd_hdim256_bf16_gqa4_sm90.cu │ │ ├── flash_fwd_hdim256_bf16_gqa8_sm90.cu │ │ ├── flash_fwd_hdim256_bf16_sm90.cu │ │ ├── flash_fwd_hdim256_e4m3_gqa16_sm90.cu │ │ ├── flash_fwd_hdim256_e4m3_gqa2_sm90.cu │ │ ├── flash_fwd_hdim256_e4m3_gqa32_sm90.cu │ │ ├── flash_fwd_hdim256_e4m3_gqa4_sm90.cu │ │ ├── flash_fwd_hdim256_e4m3_gqa8_sm90.cu │ │ ├── flash_fwd_hdim256_e4m3_sm90.cu │ │ ├── flash_fwd_hdim256_fp16_gqa16_sm90.cu │ │ ├── flash_fwd_hdim256_fp16_gqa2_sm90.cu │ │ ├── flash_fwd_hdim256_fp16_gqa32_sm90.cu │ │ ├── flash_fwd_hdim256_fp16_gqa4_sm90.cu │ │ ├── flash_fwd_hdim256_fp16_gqa8_sm90.cu │ │ ├── flash_fwd_hdim256_fp16_sm90.cu │ │ ├── flash_fwd_hdim64_bf16_gqa16_sm90.cu │ │ ├── flash_fwd_hdim64_bf16_gqa2_sm90.cu │ │ ├── flash_fwd_hdim64_bf16_gqa32_sm90.cu │ │ ├── flash_fwd_hdim64_bf16_gqa4_sm90.cu │ │ ├── flash_fwd_hdim64_bf16_gqa8_sm90.cu │ │ ├── flash_fwd_hdim64_bf16_sm90.cu │ │ ├── flash_fwd_hdim64_e4m3_gqa16_sm90.cu │ │ ├── flash_fwd_hdim64_e4m3_gqa2_sm90.cu │ │ ├── flash_fwd_hdim64_e4m3_gqa32_sm90.cu │ │ ├── flash_fwd_hdim64_e4m3_gqa4_sm90.cu │ │ ├── flash_fwd_hdim64_e4m3_gqa8_sm90.cu │ │ ├── flash_fwd_hdim64_e4m3_sm90.cu │ │ ├── flash_fwd_hdim64_fp16_gqa16_sm90.cu │ │ ├── flash_fwd_hdim64_fp16_gqa2_sm90.cu │ │ ├── flash_fwd_hdim64_fp16_gqa32_sm90.cu │ │ ├── flash_fwd_hdim64_fp16_gqa4_sm90.cu │ │ ├── flash_fwd_hdim64_fp16_gqa8_sm90.cu │ │ ├── flash_fwd_hdim64_fp16_sm90.cu │ │ ├── flash_fwd_kernel.h │ │ ├── flash_fwd_launch_template.h │ │ ├── kernel_traits.h │ │ ├── mainloop_fwd_sm90_tma_gmma_ws.hpp │ │ ├── named_barrier.hpp │ │ ├── seq_len.h │ │ ├── softmax.h │ │ ├── static_switch.h │ │ ├── tile_scheduler.hpp │ │ └── utils.h │ ├── src/ │ │ ├── ffi.rs │ │ └── lib.rs │ └── tests/ │ └── flash_attn_tests.rs ├── candle-kernels/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src/ │ ├── affine.cu │ ├── binary.cu │ ├── binary_op_macros.cuh │ ├── cast.cu │ ├── compatibility.cuh │ ├── conv.cu │ ├── cuda_utils.cuh │ ├── ffi.rs │ ├── fill.cu │ ├── indexing.cu │ ├── lib.rs │ ├── moe/ │ │ ├── gguf.cuh │ │ ├── moe_gguf.cu │ │ ├── moe_utils.cuh │ │ ├── moe_wmma.cu │ │ └── moe_wmma_gguf.cu │ ├── ptx.rs │ ├── quantized.cu │ ├── reduce.cu │ ├── sort.cu │ ├── ternary.cu │ └── unary.cu ├── candle-metal-kernels/ │ ├── Cargo.toml │ ├── README.md │ ├── examples/ │ │ └── metal_benchmarks.rs │ └── src/ │ ├── err.rs │ ├── kernel.rs │ ├── kernels/ │ │ ├── affine.rs │ │ ├── binary.rs │ │ ├── cast.rs │ │ ├── convolution.rs │ │ ├── fill.rs │ │ ├── indexing.rs │ │ ├── macros.rs │ │ ├── mlx_gemm.rs │ │ ├── mod.rs │ │ ├── quantized.rs │ │ ├── random.rs │ │ ├── reduce.rs │ │ ├── sdpa.rs │ │ ├── sort.rs │ │ ├── ternary.rs │ │ └── unary.rs │ ├── lib.rs │ ├── metal/ │ │ ├── buffer.rs │ │ ├── command_buffer.rs │ │ ├── commands.rs │ │ ├── compute_pipeline.rs │ │ ├── device.rs │ │ ├── encoder.rs │ │ ├── library.rs │ │ └── mod.rs │ ├── metal_src/ │ │ ├── affine.metal │ │ ├── binary.metal │ │ ├── cast.metal │ │ ├── conv.metal │ │ ├── fill.metal │ │ ├── indexing.metal │ │ ├── mlx_gemm.metal │ │ ├── mlx_sort.metal │ │ ├── quantized.metal │ │ ├── random.metal │ │ ├── reduce.metal │ │ ├── scaled_dot_product_attention.metal │ │ ├── sort.metal │ │ ├── ternary.metal │ │ ├── unary.metal │ │ └── utils.metal │ ├── source.rs │ ├── tests.rs │ └── utils.rs ├── candle-nn/ │ ├── Cargo.toml │ ├── README.md │ ├── benches/ │ │ ├── bench_main.rs │ │ └── benchmarks/ │ │ ├── conv.rs │ │ ├── mod.rs │ │ ├── norm.rs │ │ └── softmax.rs │ ├── examples/ │ │ ├── basic_optimizer.rs │ │ └── cpu_benchmarks.rs │ ├── src/ │ │ ├── activation.rs │ │ ├── batch_norm.rs │ │ ├── conv.rs │ │ ├── cpu_flash_attention.rs │ │ ├── embedding.rs │ │ ├── encoding.rs │ │ ├── func.rs │ │ ├── group_norm.rs │ │ ├── init.rs │ │ ├── kv_cache.rs │ │ ├── layer_norm.rs │ │ ├── lib.rs │ │ ├── linear.rs │ │ ├── loss.rs │ │ ├── moe.rs │ │ ├── ops.rs │ │ ├── optim.rs │ │ ├── rnn.rs │ │ ├── rotary_emb.rs │ │ ├── sampling.rs │ │ ├── sequential.rs │ │ ├── var_builder.rs │ │ └── var_map.rs │ └── tests/ │ ├── batch_norm.rs │ ├── cpu_flash_attn.rs │ ├── group_norm.rs │ ├── kv_cache.rs │ ├── layer_norm.rs │ ├── loss.rs │ ├── one_hot.rs │ ├── ops.rs │ ├── optim.rs │ ├── rnn.rs │ └── sdpa.rs ├── candle-onnx/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── src/ │ │ ├── eval.rs │ │ ├── lib.rs │ │ └── onnx.proto3 │ └── tests/ │ └── ops.rs ├── candle-pyo3/ │ ├── .gitignore │ ├── Cargo.toml │ ├── README.md │ ├── _additional_typing/ │ │ ├── README.md │ │ └── __init__.py │ ├── build.rs │ ├── e5.py │ ├── py_src/ │ │ └── candle/ │ │ ├── __init__.py │ │ ├── __init__.pyi │ │ ├── functional/ │ │ │ ├── __init__.py │ │ │ └── __init__.pyi │ │ ├── models/ │ │ │ ├── bert.py │ │ │ └── llama.py │ │ ├── nn/ │ │ │ ├── __init__.py │ │ │ ├── __init__.pyi │ │ │ ├── container.py │ │ │ ├── linear.py │ │ │ ├── module.py │ │ │ ├── normalization.py │ │ │ └── sparse.py │ │ ├── onnx/ │ │ │ ├── __init__.py │ │ │ └── __init__.pyi │ │ ├── testing/ │ │ │ └── __init__.py │ │ ├── typing/ │ │ │ └── __init__.py │ │ └── utils/ │ │ ├── __init__.py │ │ └── __init__.pyi │ ├── pyproject.toml │ ├── quant-llama.py │ ├── src/ │ │ ├── lib.rs │ │ ├── onnx.rs │ │ ├── shape.rs │ │ └── utils.rs │ ├── stub.py │ ├── test.py │ ├── test_pytorch.py │ └── tests/ │ ├── __init__.py │ ├── bindings/ │ │ ├── test_linear.py │ │ ├── test_module.py │ │ └── test_testing.py │ └── native/ │ ├── test_shape.py │ ├── test_tensor.py │ └── test_utils.py ├── candle-transformers/ │ ├── Cargo.toml │ ├── README.md │ ├── src/ │ │ ├── fused_moe.rs │ │ ├── generation/ │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── models/ │ │ │ ├── based.rs │ │ │ ├── beit.rs │ │ │ ├── bert.rs │ │ │ ├── bigcode.rs │ │ │ ├── blip.rs │ │ │ ├── blip_text.rs │ │ │ ├── chatglm.rs │ │ │ ├── chinese_clip/ │ │ │ │ ├── mod.rs │ │ │ │ ├── text_model.rs │ │ │ │ └── vision_model.rs │ │ │ ├── clip/ │ │ │ │ ├── mod.rs │ │ │ │ ├── text_model.rs │ │ │ │ └── vision_model.rs │ │ │ ├── codegeex4_9b.rs │ │ │ ├── colpali.rs │ │ │ ├── convmixer.rs │ │ │ ├── convnext.rs │ │ │ ├── csm.rs │ │ │ ├── dac.rs │ │ │ ├── debertav2.rs │ │ │ ├── deepseek2.rs │ │ │ ├── depth_anything_v2.rs │ │ │ ├── dinov2.rs │ │ │ ├── dinov2reg4.rs │ │ │ ├── distilbert.rs │ │ │ ├── efficientnet.rs │ │ │ ├── efficientvit.rs │ │ │ ├── encodec.rs │ │ │ ├── eva2.rs │ │ │ ├── falcon.rs │ │ │ ├── fastvit.rs │ │ │ ├── flux/ │ │ │ │ ├── autoencoder.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── model.rs │ │ │ │ ├── quantized_model.rs │ │ │ │ └── sampling.rs │ │ │ ├── gemma.rs │ │ │ ├── gemma2.rs │ │ │ ├── gemma3.rs │ │ │ ├── glm4.rs │ │ │ ├── glm4_new.rs │ │ │ ├── granite.rs │ │ │ ├── granitemoehybrid.rs │ │ │ ├── helium.rs │ │ │ ├── hiera.rs │ │ │ ├── jina_bert.rs │ │ │ ├── llama.rs │ │ │ ├── llama2_c.rs │ │ │ ├── llama2_c_weights.rs │ │ │ ├── llava/ │ │ │ │ ├── config.rs │ │ │ │ ├── mod.rs │ │ │ │ └── utils.rs │ │ │ ├── mamba.rs │ │ │ ├── mamba2.rs │ │ │ ├── marian.rs │ │ │ ├── metavoice.rs │ │ │ ├── mimi/ │ │ │ │ ├── conv.rs │ │ │ │ ├── encodec.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── quantization.rs │ │ │ │ ├── seanet.rs │ │ │ │ └── transformer.rs │ │ │ ├── mistral.rs │ │ │ ├── mixformer.rs │ │ │ ├── mixtral.rs │ │ │ ├── mmdit/ │ │ │ │ ├── blocks.rs │ │ │ │ ├── embedding.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── model.rs │ │ │ │ └── projections.rs │ │ │ ├── mobileclip.rs │ │ │ ├── mobilenetv4.rs │ │ │ ├── mobileone.rs │ │ │ ├── mod.rs │ │ │ ├── modernbert.rs │ │ │ ├── moondream.rs │ │ │ ├── mpt.rs │ │ │ ├── nomic_bert.rs │ │ │ ├── nvembed_v2/ │ │ │ │ ├── embedding.rs │ │ │ │ ├── mod.rs │ │ │ │ └── model.rs │ │ │ ├── olmo.rs │ │ │ ├── olmo2.rs │ │ │ ├── openclip/ │ │ │ │ ├── mod.rs │ │ │ │ └── text_model.rs │ │ │ ├── paddleocr_vl/ │ │ │ │ ├── config.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── text.rs │ │ │ │ └── vision.rs │ │ │ ├── paligemma.rs │ │ │ ├── parler_tts.rs │ │ │ ├── persimmon.rs │ │ │ ├── phi.rs │ │ │ ├── phi3.rs │ │ │ ├── pixtral/ │ │ │ │ ├── llava.rs │ │ │ │ ├── mod.rs │ │ │ │ └── vision_model.rs │ │ │ ├── quantized_blip.rs │ │ │ ├── quantized_blip_text.rs │ │ │ ├── quantized_gemma3.rs │ │ │ ├── quantized_glm4.rs │ │ │ ├── quantized_lfm2.rs │ │ │ ├── quantized_llama.rs │ │ │ ├── quantized_llama2_c.rs │ │ │ ├── quantized_metavoice.rs │ │ │ ├── quantized_mistral.rs │ │ │ ├── quantized_mixformer.rs │ │ │ ├── quantized_moondream.rs │ │ │ ├── quantized_mpt.rs │ │ │ ├── quantized_phi.rs │ │ │ ├── quantized_phi3.rs │ │ │ ├── quantized_qwen2.rs │ │ │ ├── quantized_qwen3.rs │ │ │ ├── quantized_qwen3_moe.rs │ │ │ ├── quantized_recurrent_gemma.rs │ │ │ ├── quantized_rwkv_v5.rs │ │ │ ├── quantized_rwkv_v6.rs │ │ │ ├── quantized_stable_lm.rs │ │ │ ├── quantized_t5.rs │ │ │ ├── qwen2.rs │ │ │ ├── qwen2_moe.rs │ │ │ ├── qwen3.rs │ │ │ ├── qwen3_moe.rs │ │ │ ├── qwen3_vl/ │ │ │ │ ├── config.rs │ │ │ │ ├── conv3d_temporal_2.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── text.rs │ │ │ │ └── vision.rs │ │ │ ├── recurrent_gemma.rs │ │ │ ├── repvgg.rs │ │ │ ├── resnet.rs │ │ │ ├── rwkv_v5.rs │ │ │ ├── rwkv_v6.rs │ │ │ ├── rwkv_v7.rs │ │ │ ├── segformer.rs │ │ │ ├── segment_anything/ │ │ │ │ ├── image_encoder.rs │ │ │ │ ├── mask_decoder.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── prompt_encoder.rs │ │ │ │ ├── sam.rs │ │ │ │ ├── tiny_vit.rs │ │ │ │ └── transformer.rs │ │ │ ├── siglip.rs │ │ │ ├── smol/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ ├── quantized_smollm3.rs │ │ │ │ └── smollm3.rs │ │ │ ├── snac.rs │ │ │ ├── stable_diffusion/ │ │ │ │ ├── attention.rs │ │ │ │ ├── clip.rs │ │ │ │ ├── ddim.rs │ │ │ │ ├── ddpm.rs │ │ │ │ ├── embeddings.rs │ │ │ │ ├── euler_ancestral_discrete.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── resnet.rs │ │ │ │ ├── schedulers.rs │ │ │ │ ├── unet_2d.rs │ │ │ │ ├── unet_2d_blocks.rs │ │ │ │ ├── uni_pc.rs │ │ │ │ ├── utils.rs │ │ │ │ └── vae.rs │ │ │ ├── stable_lm.rs │ │ │ ├── starcoder2.rs │ │ │ ├── stella_en_v5.rs │ │ │ ├── t5.rs │ │ │ ├── trocr.rs │ │ │ ├── vgg.rs │ │ │ ├── vit.rs │ │ │ ├── voxtral/ │ │ │ │ ├── audio.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── model.rs │ │ │ │ └── voxtral_llama.rs │ │ │ ├── whisper/ │ │ │ │ ├── audio.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── model.rs │ │ │ │ └── quantized_model.rs │ │ │ ├── with_tracing.rs │ │ │ ├── wuerstchen/ │ │ │ │ ├── attention_processor.rs │ │ │ │ ├── common.rs │ │ │ │ ├── ddpm.rs │ │ │ │ ├── diffnext.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── paella_vq.rs │ │ │ │ └── prior.rs │ │ │ ├── xlm_roberta.rs │ │ │ ├── yi.rs │ │ │ └── z_image/ │ │ │ ├── mod.rs │ │ │ ├── preprocess.rs │ │ │ ├── sampling.rs │ │ │ ├── scheduler.rs │ │ │ ├── text_encoder.rs │ │ │ ├── transformer.rs │ │ │ └── vae.rs │ │ ├── object_detection.rs │ │ ├── pipelines/ │ │ │ ├── mod.rs │ │ │ └── text_generation.rs │ │ ├── quantized_nn.rs │ │ ├── quantized_var_builder.rs │ │ └── utils.rs │ └── tests/ │ ├── generation_tests.rs │ └── nms_tests.rs ├── candle-ug/ │ ├── Cargo.toml │ └── src/ │ └── lib.rs ├── candle-wasm-examples/ │ ├── bert/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── bertWorker.js │ │ ├── build-lib.sh │ │ ├── lib-example.html │ │ ├── src/ │ │ │ ├── bin/ │ │ │ │ └── m.rs │ │ │ └── lib.rs │ │ └── utils.js │ ├── blip/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── blipWorker.js │ │ ├── build-lib.sh │ │ ├── index.html │ │ └── src/ │ │ ├── bin/ │ │ │ └── m.rs │ │ ├── lib.rs │ │ └── token_output_stream.rs │ ├── chat-template/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ └── lib.rs │ ├── llama2-c/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build-lib.sh │ │ ├── index.html │ │ ├── lib-example.html │ │ ├── llama2cWorker.js │ │ └── src/ │ │ ├── app.rs │ │ ├── bin/ │ │ │ ├── app.rs │ │ │ ├── m.rs │ │ │ └── worker.rs │ │ ├── lib.rs │ │ ├── model.rs │ │ └── worker.rs │ ├── moondream/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build-lib.sh │ │ ├── code.js │ │ ├── index.html │ │ ├── moondreamWorker.js │ │ └── src/ │ │ ├── bin/ │ │ │ └── m.rs │ │ └── lib.rs │ ├── phi/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build-lib.sh │ │ ├── index.html │ │ ├── phiWorker.js │ │ └── src/ │ │ ├── bin/ │ │ │ └── m.rs │ │ └── lib.rs │ ├── quant-qwen3/ │ │ ├── .cargo/ │ │ │ └── config.toml │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── index.html │ │ ├── serve.py │ │ └── src/ │ │ ├── lib.rs │ │ ├── m.rs │ │ └── profiler.rs │ ├── segment-anything/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build-lib.sh │ │ ├── lib-example.html │ │ ├── samWorker.js │ │ └── src/ │ │ ├── bin/ │ │ │ └── m.rs │ │ └── lib.rs │ ├── t5/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── T5ModelConditionalGeneration.js │ │ ├── T5ModelEncoderWorker.js │ │ ├── build-lib.sh │ │ ├── index.html │ │ ├── src/ │ │ │ ├── bin/ │ │ │ │ ├── m-quantized.rs │ │ │ │ └── m.rs │ │ │ └── lib.rs │ │ └── utils.js │ ├── whisper/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── build-lib.sh │ │ ├── index.html │ │ ├── lib-example.html │ │ ├── main.js │ │ ├── src/ │ │ │ ├── app.rs │ │ │ ├── audio.rs │ │ │ ├── bin/ │ │ │ │ ├── app.rs │ │ │ │ ├── m.rs │ │ │ │ └── worker.rs │ │ │ ├── languages.rs │ │ │ ├── lib.rs │ │ │ └── worker.rs │ │ └── whisperWorker.js │ └── yolo/ │ ├── Cargo.toml │ ├── README.md │ ├── build-lib.sh │ ├── index.html │ ├── lib-example.html │ ├── src/ │ │ ├── app.rs │ │ ├── bin/ │ │ │ ├── app.rs │ │ │ ├── m.rs │ │ │ └── worker.rs │ │ ├── coco_classes.rs │ │ ├── lib.rs │ │ ├── model.rs │ │ └── worker.rs │ └── yoloWorker.js ├── candle-wasm-tests/ │ ├── Cargo.toml │ ├── README.md │ ├── src/ │ │ └── lib.rs │ ├── tests/ │ │ └── quantized_tests.rs │ └── webdriver.json └── tensor-tools/ ├── Cargo.toml └── src/ └── main.rs