[package]
edition = "2021"
rust-version = "1.82"
name = "tessl"
version = "0.2.0"
build = "build.rs"
links = "tessl"
exclude = [
"assets/concepts/**",
"assets/build_logo.py",
"assets/png/*@2048.png",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Metal 4 GEMM and encode runtime for Apple silicon, built on Metal Performance Primitives TensorOps"
homepage = "https://tessl.vbcr.dev"
documentation = "https://docs.rs/tessl"
readme = "README.md"
keywords = [
"metal",
"gemm",
"gpu",
"apple-silicon",
"bf16",
]
categories = [
"science",
"hardware-support",
"api-bindings",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/bharathvbcr/tessl"
[package.metadata.docs.rs]
default-target = "aarch64-apple-darwin"
targets = ["aarch64-apple-darwin"]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
quant-prep = []
[lib]
name = "tessl"
path = "src/lib.rs"
[[bin]]
name = "bench_gemm_sweep"
path = "src/bin/bench_gemm_sweep.rs"
[[bin]]
name = "bench_gemm_tile_tune"
path = "src/bin/bench_gemm_tile_tune.rs"
[[bin]]
name = "bench_gemm_tnnt_tune"
path = "src/bin/bench_gemm_tnnt_tune.rs"
[[bin]]
name = "bench_nn_kernels"
path = "src/bin/bench_nn_kernels.rs"
[[bin]]
name = "probe_gemm_parity"
path = "src/bin/probe_gemm_parity.rs"
[[example]]
name = "epilogue_cost"
path = "examples/epilogue_cost.rs"
[[example]]
name = "gemm"
path = "examples/gemm.rs"
[[example]]
name = "nn_layer"
path = "examples/nn_layer.rs"
[[test]]
name = "attention"
path = "tests/attention.rs"
[[test]]
name = "bf16_cast"
path = "tests/bf16_cast.rs"
[[test]]
name = "build_artifact_contract"
path = "tests/build_artifact_contract.rs"
[[test]]
name = "docs_name_real_tools"
path = "tests/docs_name_real_tools.rs"
[[test]]
name = "f16"
path = "tests/f16.rs"
[[test]]
name = "gemm_batched"
path = "tests/gemm_batched.rs"
[[test]]
name = "gemm_correctness"
path = "tests/gemm_correctness.rs"
[[test]]
name = "gemm_determinism"
path = "tests/gemm_determinism.rs"
[[test]]
name = "gemm_epilogue"
path = "tests/gemm_epilogue.rs"
[[test]]
name = "gemm_flag_paths"
path = "tests/gemm_flag_paths.rs"
[[test]]
name = "gemm_i8"
path = "tests/gemm_i8.rs"
[[test]]
name = "gemm_ragged_shapes"
path = "tests/gemm_ragged_shapes.rs"
[[test]]
name = "interop_mtl_buffer"
path = "tests/interop_mtl_buffer.rs"
[[test]]
name = "kv_safety"
path = "tests/kv_safety.rs"
[[test]]
name = "nn_adversarial"
path = "tests/nn_adversarial.rs"
[[test]]
name = "nn_aliasing"
path = "tests/nn_aliasing.rs"
[[test]]
name = "nn_decode_hazards"
path = "tests/nn_decode_hazards.rs"
[[test]]
name = "nn_kernels"
path = "tests/nn_kernels.rs"
[[test]]
name = "nn_runtime_ownership"
path = "tests/nn_runtime_ownership.rs"
[[test]]
name = "nn_wiring"
path = "tests/nn_wiring.rs"
[[test]]
name = "promoted_kernels"
path = "tests/promoted_kernels.rs"
[[test]]
name = "promoted_numeric"
path = "tests/promoted_numeric.rs"
[[test]]
name = "public_api_errors"
path = "tests/public_api_errors.rs"
[[test]]
name = "q4_interleaved"
path = "tests/q4_interleaved.rs"
[[test]]
name = "q4_shape_domain"
path = "tests/q4_shape_domain.rs"
[[test]]
name = "qkv_rope"
path = "tests/qkv_rope.rs"
[[test]]
name = "quantized_gemv"
path = "tests/quantized_gemv.rs"
[[test]]
name = "reductions"
path = "tests/reductions.rs"
[[test]]
name = "runtime_lifecycle"
path = "tests/runtime_lifecycle.rs"
[[test]]
name = "shader_index_arithmetic"
path = "tests/shader_index_arithmetic.rs"
[dependencies.libc]
version = "0.2"
[dependencies.objc2]
version = "0.6"
[dependencies.objc2-foundation]
version = "0.3"
features = [
"NSString",
"NSURL",
"NSError",
"NSData",
"NSValue",
"NSRange",
]
[dependencies.objc2-metal]
version = "0.3"
features = [
"MTLDevice",
"MTLLibrary",
"MTLBuffer",
"MTLResource",
"MTLAllocation",
"MTLComputePipeline",
"MTLTypes",
"MTLGPUAddress",
"MTLEvent",
"MTLResidencySet",
"MTL4CommandQueue",
"MTL4CommandBuffer",
"MTL4CommandAllocator",
"MTL4CommandEncoder",
"MTL4ComputeCommandEncoder",
"MTL4ArgumentTable",
"MTL4Counters",
"MTLIndirectCommandBuffer",
"MTLIndirectCommandEncoder",
"MTL4Compiler",
"MTL4ComputePipeline",
"MTL4PipelineState",
"MTL4FunctionDescriptor",
"MTL4LibraryFunctionDescriptor",
"MTLTensor",
]
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1