Packages
Tensor library for Gleam/BEAM with a pure Gleam API, zero-copy views, and optional native acceleration
Current section
Files
Jump to
Current section
Files
src/viva_tensor@native@sparse.erl
-module(viva_tensor@native@sparse).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/viva_tensor/native/sparse.gleam").
-export([available/0, from_cuda16/1, shape/1, compression_ratio/1, matmul/5]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/viva_tensor/native/sparse.gleam", 18).
?DOC(false).
-spec available() -> boolean().
available() ->
viva_tensor_zig:sparse_available().
-file("src/viva_tensor/native/sparse.gleam", 26).
?DOC(false).
-spec from_cuda16(viva_tensor@core@ffi:cuda_tensor16_ref()) -> {ok,
viva_tensor@core@ffi:sparse_tensor_ref()} |
{error, binary()}.
from_cuda16(Tensor) ->
viva_tensor_zig:sparse_from_ct16(Tensor).
-file("src/viva_tensor/native/sparse.gleam", 33).
?DOC(false).
-spec shape(viva_tensor@core@ffi:sparse_tensor_ref()) -> {ok, list(integer())} |
{error, binary()}.
shape(Tensor) ->
viva_tensor_zig:sparse_shape(Tensor).
-file("src/viva_tensor/native/sparse.gleam", 38).
?DOC(false).
-spec compression_ratio(viva_tensor@core@ffi:sparse_tensor_ref()) -> {ok,
float()} |
{error, binary()}.
compression_ratio(Tensor) ->
viva_tensor_zig:sparse_compression_ratio(Tensor).
-file("src/viva_tensor/native/sparse.gleam", 50).
?DOC(false).
-spec matmul(
viva_tensor@core@ffi:sparse_tensor_ref(),
viva_tensor@core@ffi:cuda_tensor16_ref(),
integer(),
integer(),
integer()
) -> {ok, viva_tensor@core@ffi:cuda_tensor16_ref()} | {error, binary()}.
matmul(A_sparse, B_dense, M, N, K) ->
viva_tensor_zig:sparse_matmul(A_sparse, B_dense, M, N, K).