rebase
This commit is contained in:
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: d832ae99342413e9277cab63924f1dd4
|
||||
config: b9afea4432e35a4ac5dbffb76ed39348
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
|
||||
+6
-20
@@ -420,8 +420,8 @@ element in the output.
|
||||
constant const float& alpha [[buffer(3)]],
|
||||
constant const float& beta [[buffer(4)]],
|
||||
constant const int* shape [[buffer(5)]],
|
||||
constant const size_t* x_strides [[buffer(6)]],
|
||||
constant const size_t* y_strides [[buffer(7)]],
|
||||
constant const int64_t* x_strides [[buffer(6)]],
|
||||
constant const int64_t* y_strides [[buffer(7)]],
|
||||
constant const int& ndim [[buffer(8)]],
|
||||
uint index [[thread_position_in_grid]]) {
|
||||
// Convert linear indices to offsets in array
|
||||
@@ -438,24 +438,10 @@ each instantiation a unique host name so we can identify it.
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
#define instantiate_axpby(type_name, type) \
|
||||
template [[host_name("axpby_general_" #type_name)]] \
|
||||
[[kernel]] void axpby_general<type>( \
|
||||
device const type* x [[buffer(0)]], \
|
||||
device const type* y [[buffer(1)]], \
|
||||
device type* out [[buffer(2)]], \
|
||||
constant const float& alpha [[buffer(3)]], \
|
||||
constant const float& beta [[buffer(4)]], \
|
||||
constant const int* shape [[buffer(5)]], \
|
||||
constant const size_t* x_strides [[buffer(6)]], \
|
||||
constant const size_t* y_strides [[buffer(7)]], \
|
||||
constant const int& ndim [[buffer(8)]], \
|
||||
uint index [[thread_position_in_grid]]);
|
||||
|
||||
instantiate_axpby(float32, float);
|
||||
instantiate_axpby(float16, half);
|
||||
instantiate_axpby(bfloat16, bfloat16_t);
|
||||
instantiate_axpby(complex64, complex64_t);
|
||||
instantiate_kernel("axpby_general_float32", axpby_general, float)
|
||||
instantiate_kernel("axpby_general_float16", axpby_general, float16_t)
|
||||
instantiate_kernel("axpby_general_bfloat16", axpby_general, bfloat16_t)
|
||||
instantiate_kernel("axpby_general_complex64", axpby_general, complex64_t)
|
||||
|
||||
The logic to determine the kernel, set the inputs, resolve the grid dimensions,
|
||||
and dispatch to the GPU are contained in :meth:`Axpby::eval_gpu` as shown
|
||||
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
.. _mlx_in_cpp:
|
||||
|
||||
Using MLX in C++
|
||||
================
|
||||
|
||||
You can use MLX in a C++ project with CMake.
|
||||
|
||||
.. note::
|
||||
|
||||
This guide is based one the following `example using MLX in C++
|
||||
<https://github.com/ml-explore/mlx/tree/main/examples/cmake_project>`_
|
||||
|
||||
First install MLX:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install -U mlx
|
||||
|
||||
You can also install the MLX Python package from source or just the C++
|
||||
library. For more information see the :ref:`documentation on installing MLX
|
||||
<build_and_install>`.
|
||||
|
||||
Next make an example program in ``example.cpp``:
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "mlx/mlx.h"
|
||||
|
||||
namespace mx = mlx::core;
|
||||
|
||||
int main() {
|
||||
auto x = mx::array({1, 2, 3});
|
||||
auto y = mx::array({1, 2, 3});
|
||||
std::cout << x + y << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
The next step is to setup a CMake file in ``CMakeLists.txt``:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
cmake_minimum_required(VERSION 3.27)
|
||||
|
||||
project(example LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
|
||||
Depending on how you installed MLX, you may need to tell CMake where to
|
||||
find it.
|
||||
|
||||
If you installed MLX with Python, then add the following to the CMake file:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(
|
||||
Python 3.9
|
||||
COMPONENTS Interpreter Development.Module
|
||||
REQUIRED)
|
||||
execute_process(
|
||||
COMMAND "${Python_EXECUTABLE}" -m mlx --cmake-dir
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE MLX_ROOT)
|
||||
|
||||
If you installed the MLX C++ package to a system path, then CMake should be
|
||||
able to find it. If you installed it to a non-standard location or CMake can't
|
||||
find MLX then set ``MLX_ROOT`` to the location where MLX is installed:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(MLX_ROOT "/path/to/mlx/")
|
||||
|
||||
Next, instruct CMake to find MLX:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(MLX CONFIG REQUIRED)
|
||||
|
||||
Finally, add the ``example.cpp`` program as an executable and link MLX.
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
add_executable(example example.cpp)
|
||||
target_link_libraries(example PRIVATE mlx)
|
||||
|
||||
You can build the example with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build build
|
||||
|
||||
And run it with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./build/example
|
||||
|
||||
Note ``find_package(MLX CONFIG REQUIRED)`` sets the following variables:
|
||||
|
||||
.. list-table:: Package Variables
|
||||
:widths: 20 20
|
||||
:header-rows: 1
|
||||
|
||||
* - Variable
|
||||
- Description
|
||||
* - MLX_FOUND
|
||||
- ``True`` if MLX is found
|
||||
* - MLX_INCLUDE_DIRS
|
||||
- Include directory
|
||||
* - MLX_LIBRARIES
|
||||
- Libraries to link against
|
||||
* - MLX_CXX_FLAGS
|
||||
- Additional compiler flags
|
||||
* - MLX_BUILD_ACCELERATE
|
||||
- ``True`` if MLX was built with Accelerate
|
||||
* - MLX_BUILD_METAL
|
||||
- ``True`` if MLX was built with Metal
|
||||
Vendored
+3
@@ -45,6 +45,7 @@ are the CPU and GPU.
|
||||
usage/numpy
|
||||
usage/distributed
|
||||
usage/using_streams
|
||||
usage/export
|
||||
|
||||
.. toctree::
|
||||
:caption: Examples
|
||||
@@ -61,6 +62,7 @@ are the CPU and GPU.
|
||||
python/array
|
||||
python/data_types
|
||||
python/devices_and_streams
|
||||
python/export
|
||||
python/ops
|
||||
python/random
|
||||
python/transforms
|
||||
@@ -86,3 +88,4 @@ are the CPU and GPU.
|
||||
dev/extensions
|
||||
dev/metal_debugger
|
||||
dev/custom_metal_kernels
|
||||
dev/mlx_in_cpp
|
||||
|
||||
Vendored
+3
-1
@@ -1,3 +1,5 @@
|
||||
.. _build_and_install:
|
||||
|
||||
Build and Install
|
||||
=================
|
||||
|
||||
@@ -53,7 +55,7 @@ Build Requirements
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- A C++ compiler with C++17 support (e.g. Clang >= 5.0)
|
||||
- `cmake <https://cmake.org/>`_ -- version 3.24 or later, and ``make``
|
||||
- `cmake <https://cmake.org/>`_ -- version 3.25 or later, and ``make``
|
||||
- Xcode >= 15.0 and macOS SDK >= 14.0
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.export\_function
|
||||
=========================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: export_function
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.export\_to\_dot
|
||||
========================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: export_to_dot
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.exporter
|
||||
=================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: exporter
|
||||
@@ -0,0 +1,30 @@
|
||||
mlx.core.finfo
|
||||
==============
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autoclass:: finfo
|
||||
|
||||
|
||||
.. automethod:: __init__
|
||||
|
||||
|
||||
.. rubric:: Methods
|
||||
|
||||
.. autosummary::
|
||||
|
||||
~finfo.__init__
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. rubric:: Attributes
|
||||
|
||||
.. autosummary::
|
||||
|
||||
~finfo.dtype
|
||||
~finfo.max
|
||||
~finfo.min
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.import\_function
|
||||
=========================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: import_function
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.kron
|
||||
=============
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: kron
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.slice
|
||||
==============
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: slice
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.slice\_update
|
||||
======================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: slice_update
|
||||
@@ -0,0 +1,6 @@
|
||||
mlx.core.unflatten
|
||||
==================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autofunction:: unflatten
|
||||
@@ -66,3 +66,4 @@ documentation for more information. Use :func:`issubdtype` to determine if one
|
||||
Dtype
|
||||
DtypeCategory
|
||||
issubdtype
|
||||
finfo
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
.. _export:
|
||||
|
||||
Export Functions
|
||||
================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
.. autosummary::
|
||||
:toctree: _autosummary
|
||||
|
||||
export_function
|
||||
import_function
|
||||
exporter
|
||||
export_to_dot
|
||||
+4
@@ -89,6 +89,7 @@ Operations
|
||||
isneginf
|
||||
isposinf
|
||||
issubdtype
|
||||
kron
|
||||
left_shift
|
||||
less
|
||||
less_equal
|
||||
@@ -144,6 +145,8 @@ Operations
|
||||
sign
|
||||
sin
|
||||
sinh
|
||||
slice
|
||||
slice_update
|
||||
softmax
|
||||
sort
|
||||
split
|
||||
@@ -168,6 +171,7 @@ Operations
|
||||
tri
|
||||
tril
|
||||
triu
|
||||
unflatten
|
||||
var
|
||||
view
|
||||
where
|
||||
|
||||
+74
@@ -421,3 +421,77 @@ the most opportunity to optimize the computation graph:
|
||||
# Compiling the outer function is good to do as it will likely
|
||||
# be faster even though the inner functions are compiled
|
||||
fun = mx.compile(outer)
|
||||
|
||||
|
||||
|
||||
.. _shapeless_compile:
|
||||
|
||||
Shapeless Compilation
|
||||
---------------------
|
||||
|
||||
When the shape of an input to a compiled function changes, the function is
|
||||
recompiled. You can compile a function once and run it on inputs with
|
||||
variable shapes by specifying ``shapeless=True`` to :func:`compile`. In this
|
||||
case changes to the shapes of the inputs do not cause the function to be
|
||||
recompiled.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x, y):
|
||||
return mx.abs(x + y)
|
||||
|
||||
compiled_fun = mx.compile(fun, shapeless=True)
|
||||
|
||||
x = mx.array(1.0)
|
||||
y = mx.array(-2.0)
|
||||
|
||||
# Firt call compiles the function
|
||||
print(compiled_fun(x, y))
|
||||
|
||||
# Second call with different shapes
|
||||
# does not recompile the function
|
||||
x = mx.array([1.0, -6.0])
|
||||
y = mx.array([-2.0, 3.0])
|
||||
print(compiled_fun(x, y))
|
||||
|
||||
|
||||
Use shapeless compilations carefully. Since compilation is not triggered when
|
||||
shapes change, any graphs which are conditional on the input shapes will not
|
||||
work as expected. Shape-dependent computations are common and sometimes subtle
|
||||
to detect. For example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x):
|
||||
return x.reshape(x.shape[0] * x.shape[1], -1)
|
||||
|
||||
compiled_fun = mx.compile(fun, shapeless=True)
|
||||
|
||||
x = mx.random.uniform(shape=(2, 3, 4))
|
||||
|
||||
out = compiled_fun(x)
|
||||
|
||||
x = mx.random.uniform(shape=(5, 5, 3))
|
||||
|
||||
# Error, can't reshape (5, 5, 3) to (6, -1)
|
||||
out = compiled_fun(x)
|
||||
|
||||
The second call to the ``compiled_fun`` fails because of the call to
|
||||
:func:`reshape` which uses the static shape of ``x`` in the first call. We can
|
||||
fix this by using :func:`flatten` to avoid hardcoding the shape of ``x``:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x):
|
||||
return x.flatten(0, 1)
|
||||
|
||||
compiled_fun = mx.compile(fun, shapeless=True)
|
||||
|
||||
x = mx.random.uniform(shape=(2, 3, 4))
|
||||
|
||||
out = compiled_fun(x)
|
||||
|
||||
x = mx.random.uniform(shape=(5, 5, 3))
|
||||
|
||||
# Ok
|
||||
out = compiled_fun(x)
|
||||
|
||||
+4
-3
@@ -141,12 +141,13 @@ everything else remaining the same.
|
||||
from mlx.utils import tree_map
|
||||
|
||||
def all_reduce_grads(grads):
|
||||
N = mx.distributed.init()
|
||||
N = mx.distributed.init().size()
|
||||
if N == 1:
|
||||
return grads
|
||||
return tree_map(
|
||||
lambda x: mx.distributed.all_sum(x) / N,
|
||||
grads)
|
||||
lambda x: mx.distributed.all_sum(x) / N,
|
||||
grads
|
||||
)
|
||||
|
||||
def step(model, x, y):
|
||||
loss, grads = loss_grad_fn(model, x, y)
|
||||
|
||||
+288
@@ -0,0 +1,288 @@
|
||||
.. _export_usage:
|
||||
|
||||
Exporting Functions
|
||||
===================
|
||||
|
||||
.. currentmodule:: mlx.core
|
||||
|
||||
MLX has an API to export and import functions to and from a file. This lets you
|
||||
run computations written in one MLX front-end (e.g. Python) in another MLX
|
||||
front-end (e.g. C++).
|
||||
|
||||
This guide walks through the basics of the MLX export API with some examples.
|
||||
To see the full list of functions check-out the :ref:`API documentation
|
||||
<export>`.
|
||||
|
||||
Basics of Exporting
|
||||
-------------------
|
||||
|
||||
Let's start with a simple example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x, y):
|
||||
return x + y
|
||||
|
||||
x = mx.array(1.0)
|
||||
y = mx.array(1.0)
|
||||
mx.export_function("add.mlxfn", fun, x, y)
|
||||
|
||||
To export a function, provide sample input arrays that the function
|
||||
can be called with. The data doesn't matter, but the shapes and types of the
|
||||
arrays do. In the above example we exported ``fun`` with two ``float32``
|
||||
scalar arrays. We can then import the function and run it:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
add_fun = mx.import_function("add.mlxfn")
|
||||
|
||||
out, = add_fun(mx.array(1.0), mx.array(2.0))
|
||||
# Prints: array(3, dtype=float32)
|
||||
print(out)
|
||||
|
||||
out, = add_fun(mx.array(1.0), mx.array(3.0))
|
||||
# Prints: array(4, dtype=float32)
|
||||
print(out)
|
||||
|
||||
# Raises an exception
|
||||
add_fun(mx.array(1), mx.array(3.0))
|
||||
|
||||
# Raises an exception
|
||||
add_fun(mx.array([1.0, 2.0]), mx.array(3.0))
|
||||
|
||||
Notice the third and fourth calls to ``add_fun`` raise exceptions because the
|
||||
shapes and types of the inputs are different than the shapes and types of the
|
||||
example inputs we exported the function with.
|
||||
|
||||
Also notice that even though the original ``fun`` returns a single output
|
||||
array, the imported function always returns a tuple of one or more arrays.
|
||||
|
||||
The inputs to :func:`export_function` and to an imported function can be
|
||||
specified as variable positional arguments or as a tuple of arrays:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x, y):
|
||||
return x + y
|
||||
|
||||
x = mx.array(1.0)
|
||||
y = mx.array(1.0)
|
||||
|
||||
# Both arguments to fun are positional
|
||||
mx.export_function("add.mlxfn", fun, x, y)
|
||||
|
||||
# Same as above
|
||||
mx.export_function("add.mlxfn", fun, (x, y))
|
||||
|
||||
imported_fun = mx.import_function("add.mlxfn")
|
||||
|
||||
# Ok
|
||||
out, = imported_fun(x, y)
|
||||
|
||||
# Also ok
|
||||
out, = imported_fun((x, y))
|
||||
|
||||
You can pass example inputs to functions as positional or keyword arguments. If
|
||||
you use keyword arguments to export the function, then you have to use the same
|
||||
keyword arguments when calling the imported function.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x, y):
|
||||
return x + y
|
||||
|
||||
# One argument to fun is positional, the other is a kwarg
|
||||
mx.export_function("add.mlxfn", fun, x, y=y)
|
||||
|
||||
imported_fun = mx.import_function("add.mlxfn")
|
||||
|
||||
# Ok
|
||||
out, = imported_fun(x, y=y)
|
||||
|
||||
# Also ok
|
||||
out, = imported_fun((x,), {"y": y})
|
||||
|
||||
# Raises since the keyword argument is missing
|
||||
out, = imported_fun(x, y)
|
||||
|
||||
# Raises since the keyword argument has the wrong key
|
||||
out, = imported_fun(x, z=y)
|
||||
|
||||
|
||||
Exporting Modules
|
||||
-----------------
|
||||
|
||||
An :obj:`mlx.nn.Module` can be exported with or without the parameters included
|
||||
in the exported function. Here's an example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
model = nn.Linear(4, 4)
|
||||
mx.eval(model.parameters())
|
||||
|
||||
def call(x):
|
||||
return model(x)
|
||||
|
||||
mx.export_function("model.mlxfn", call, mx.zeros(4))
|
||||
|
||||
In the above example, the :obj:`mlx.nn.Linear` module is exported. Its
|
||||
parameters are also saved to the ``model.mlxfn`` file.
|
||||
|
||||
.. note::
|
||||
|
||||
For enclosed arrays inside an exported function, be extra careful to ensure
|
||||
they are evaluated. The computation graph that gets exported will include
|
||||
the computation that produces enclosed inputs.
|
||||
|
||||
If the above example was missing ``mx.eval(model.parameters()``, the
|
||||
exported function would include the random initialization of the
|
||||
:obj:`mlx.nn.Module` parameters.
|
||||
|
||||
If you only want to export the ``Module.__call__`` function without the
|
||||
parameters, pass them as inputs to the ``call`` wrapper:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
model = nn.Linear(4, 4)
|
||||
mx.eval(model.parameters())
|
||||
|
||||
def call(x, **params):
|
||||
# Set the model's parameters to the input parameters
|
||||
model.update(tree_unflatten(list(params.items())))
|
||||
return model(x)
|
||||
|
||||
params = dict(tree_flatten(model.parameters()))
|
||||
mx.export_function("model.mlxfn", call, (mx.zeros(4),), params)
|
||||
|
||||
|
||||
Shapeless Exports
|
||||
-----------------
|
||||
|
||||
Just like :func:`compile`, functions can also be exported for dynamically shaped
|
||||
inputs. Pass ``shapeless=True`` to :func:`export_function` or :func:`exporter`
|
||||
to export a function which can be used for inputs with variable shapes:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
mx.export_function("fun.mlxfn", mx.abs, mx.array(0.0), shapeless=True)
|
||||
imported_abs = mx.import_function("fun.mlxfn")
|
||||
|
||||
# Ok
|
||||
out, = imported_abs(mx.array(-1.0))
|
||||
|
||||
# Also ok
|
||||
out, = imported_abs(mx.array([-1.0, -2.0]))
|
||||
|
||||
With ``shapeless=False`` (which is the default), the second call to
|
||||
``imported_abs`` would raise an exception with a shape mismatch.
|
||||
|
||||
Shapeless exporting works the same as shapeless compilation and should be
|
||||
used carefully. See the :ref:`documentation on shapeless compilation
|
||||
<shapeless_compile>` for more information.
|
||||
|
||||
Exporting Multiple Traces
|
||||
-------------------------
|
||||
|
||||
In some cases, functions build different computation graphs for different
|
||||
input arguments. A simple way to manage this is to export to a new file with
|
||||
each set of inputs. This is a fine option in many cases. But it can be
|
||||
suboptimal if the exported functions have a large amount of duplicate constant
|
||||
data (for example the parameters of a :obj:`mlx.nn.Module`).
|
||||
|
||||
The export API in MLX lets you export multiple traces of the same function to
|
||||
a single file by creating an exporting context manager with :func:`exporter`:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x, y=None):
|
||||
constant = mx.array(3.0)
|
||||
if y is not None:
|
||||
x += y
|
||||
return x + constant
|
||||
|
||||
with mx.exporter("fun.mlxfn", fun) as exporter:
|
||||
exporter(mx.array(1.0))
|
||||
exporter(mx.array(1.0), y=mx.array(0.0))
|
||||
|
||||
imported_function = mx.import_function("fun.mlxfn")
|
||||
|
||||
# Call the function with y=None
|
||||
out, = imported_function(mx.array(1.0))
|
||||
print(out)
|
||||
|
||||
# Call the function with y specified
|
||||
out, = imported_function(mx.array(1.0), y=mx.array(1.0))
|
||||
print(out)
|
||||
|
||||
In the above example the function constant data, (i.e. ``constant``), is only
|
||||
saved once.
|
||||
|
||||
Transformations with Imported Functions
|
||||
---------------------------------------
|
||||
|
||||
Function transformations like :func:`grad`, :func:`vmap`, and :func:`compile` work
|
||||
on imported functions just like regular Python functions:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x):
|
||||
return mx.sin(x)
|
||||
|
||||
x = mx.array(0.0)
|
||||
mx.export_function("sine.mlxfn", fun, x)
|
||||
|
||||
imported_fun = mx.import_function("sine.mlxfn")
|
||||
|
||||
# Take the derivative of the imported function
|
||||
dfdx = mx.grad(lambda x: imported_fun(x)[0])
|
||||
# Prints: array(1, dtype=float32)
|
||||
print(dfdx(x))
|
||||
|
||||
# Compile the imported function
|
||||
mx.compile(imported_fun)
|
||||
# Prints: array(0, dtype=float32)
|
||||
print(compiled_fun(x)[0])
|
||||
|
||||
|
||||
Importing Functions in C++
|
||||
--------------------------
|
||||
|
||||
Importing and running functions in C++ is basically the same as importing and
|
||||
running them in Python. First, follow the :ref:`instructions <mlx_in_cpp>` to
|
||||
setup a simple C++ project that uses MLX as a library.
|
||||
|
||||
Next, export a simple function from Python:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def fun(x, y):
|
||||
return mx.exp(x + y)
|
||||
|
||||
x = mx.array(1.0)
|
||||
y = mx.array(1.0)
|
||||
mx.export_function("fun.mlxfn", fun, x, y)
|
||||
|
||||
|
||||
Import and run the function in C++ with only a few lines of code:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
auto fun = mx::import_function("fun.mlxfn");
|
||||
|
||||
auto inputs = {mx::array(1.0), mx::array(1.0)};
|
||||
auto outputs = fun(inputs);
|
||||
|
||||
// Prints: array(2, dtype=float32)
|
||||
std::cout << outputs[0] << std::endl;
|
||||
|
||||
Imported functions can be transformed in C++ just like in Python. Use
|
||||
``std::vector<mx::array>`` for positional arguments and ``std::map<std::string,
|
||||
mx::array>`` for keyword arguments when calling imported functions in C++.
|
||||
|
||||
More Examples
|
||||
-------------
|
||||
|
||||
Here are a few more complete examples exporting more complex functions from
|
||||
Python and importing and running them in C++:
|
||||
|
||||
* `Inference and training a multi-layer perceptron <https://github.com/ml-explore/mlx/tree/main/examples/export>`_
|
||||
Vendored
+1
-1
@@ -55,7 +55,7 @@ div.sphinxsidebarwrapper {
|
||||
|
||||
div.sphinxsidebar {
|
||||
float: left;
|
||||
width: 270px;
|
||||
width: 230px;
|
||||
margin-left: -100%;
|
||||
font-size: 90%;
|
||||
word-wrap: break-word;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
const DOCUMENTATION_OPTIONS = {
|
||||
VERSION: '0.21.1',
|
||||
VERSION: '0.22.0',
|
||||
LANGUAGE: 'en',
|
||||
COLLAPSE_INDEX: false,
|
||||
BUILDER: 'html',
|
||||
|
||||
Vendored
+121
-121
@@ -6,11 +6,11 @@ html[data-theme="light"] .highlight span.linenos.special { color: #000000; backg
|
||||
html[data-theme="light"] .highlight .hll { background-color: #fae4c2 }
|
||||
html[data-theme="light"] .highlight { background: #fefefe; color: #080808 }
|
||||
html[data-theme="light"] .highlight .c { color: #515151 } /* Comment */
|
||||
html[data-theme="light"] .highlight .err { color: #a12236 } /* Error */
|
||||
html[data-theme="light"] .highlight .k { color: #6730c5 } /* Keyword */
|
||||
html[data-theme="light"] .highlight .l { color: #7f4707 } /* Literal */
|
||||
html[data-theme="light"] .highlight .err { color: #A12236 } /* Error */
|
||||
html[data-theme="light"] .highlight .k { color: #6730C5 } /* Keyword */
|
||||
html[data-theme="light"] .highlight .l { color: #7F4707 } /* Literal */
|
||||
html[data-theme="light"] .highlight .n { color: #080808 } /* Name */
|
||||
html[data-theme="light"] .highlight .o { color: #00622f } /* Operator */
|
||||
html[data-theme="light"] .highlight .o { color: #00622F } /* Operator */
|
||||
html[data-theme="light"] .highlight .p { color: #080808 } /* Punctuation */
|
||||
html[data-theme="light"] .highlight .ch { color: #515151 } /* Comment.Hashbang */
|
||||
html[data-theme="light"] .highlight .cm { color: #515151 } /* Comment.Multiline */
|
||||
@@ -18,135 +18,135 @@ html[data-theme="light"] .highlight .cp { color: #515151 } /* Comment.Preproc */
|
||||
html[data-theme="light"] .highlight .cpf { color: #515151 } /* Comment.PreprocFile */
|
||||
html[data-theme="light"] .highlight .c1 { color: #515151 } /* Comment.Single */
|
||||
html[data-theme="light"] .highlight .cs { color: #515151 } /* Comment.Special */
|
||||
html[data-theme="light"] .highlight .gd { color: #005b82 } /* Generic.Deleted */
|
||||
html[data-theme="light"] .highlight .gd { color: #005B82 } /* Generic.Deleted */
|
||||
html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
html[data-theme="light"] .highlight .gh { color: #005b82 } /* Generic.Heading */
|
||||
html[data-theme="light"] .highlight .gh { color: #005B82 } /* Generic.Heading */
|
||||
html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
html[data-theme="light"] .highlight .gu { color: #005b82 } /* Generic.Subheading */
|
||||
html[data-theme="light"] .highlight .kc { color: #6730c5 } /* Keyword.Constant */
|
||||
html[data-theme="light"] .highlight .kd { color: #6730c5 } /* Keyword.Declaration */
|
||||
html[data-theme="light"] .highlight .kn { color: #6730c5 } /* Keyword.Namespace */
|
||||
html[data-theme="light"] .highlight .kp { color: #6730c5 } /* Keyword.Pseudo */
|
||||
html[data-theme="light"] .highlight .kr { color: #6730c5 } /* Keyword.Reserved */
|
||||
html[data-theme="light"] .highlight .kt { color: #7f4707 } /* Keyword.Type */
|
||||
html[data-theme="light"] .highlight .ld { color: #7f4707 } /* Literal.Date */
|
||||
html[data-theme="light"] .highlight .m { color: #7f4707 } /* Literal.Number */
|
||||
html[data-theme="light"] .highlight .s { color: #00622f } /* Literal.String */
|
||||
html[data-theme="light"] .highlight .gu { color: #005B82 } /* Generic.Subheading */
|
||||
html[data-theme="light"] .highlight .kc { color: #6730C5 } /* Keyword.Constant */
|
||||
html[data-theme="light"] .highlight .kd { color: #6730C5 } /* Keyword.Declaration */
|
||||
html[data-theme="light"] .highlight .kn { color: #6730C5 } /* Keyword.Namespace */
|
||||
html[data-theme="light"] .highlight .kp { color: #6730C5 } /* Keyword.Pseudo */
|
||||
html[data-theme="light"] .highlight .kr { color: #6730C5 } /* Keyword.Reserved */
|
||||
html[data-theme="light"] .highlight .kt { color: #7F4707 } /* Keyword.Type */
|
||||
html[data-theme="light"] .highlight .ld { color: #7F4707 } /* Literal.Date */
|
||||
html[data-theme="light"] .highlight .m { color: #7F4707 } /* Literal.Number */
|
||||
html[data-theme="light"] .highlight .s { color: #00622F } /* Literal.String */
|
||||
html[data-theme="light"] .highlight .na { color: #912583 } /* Name.Attribute */
|
||||
html[data-theme="light"] .highlight .nb { color: #7f4707 } /* Name.Builtin */
|
||||
html[data-theme="light"] .highlight .nc { color: #005b82 } /* Name.Class */
|
||||
html[data-theme="light"] .highlight .no { color: #005b82 } /* Name.Constant */
|
||||
html[data-theme="light"] .highlight .nd { color: #7f4707 } /* Name.Decorator */
|
||||
html[data-theme="light"] .highlight .ni { color: #00622f } /* Name.Entity */
|
||||
html[data-theme="light"] .highlight .ne { color: #6730c5 } /* Name.Exception */
|
||||
html[data-theme="light"] .highlight .nf { color: #005b82 } /* Name.Function */
|
||||
html[data-theme="light"] .highlight .nl { color: #7f4707 } /* Name.Label */
|
||||
html[data-theme="light"] .highlight .nb { color: #7F4707 } /* Name.Builtin */
|
||||
html[data-theme="light"] .highlight .nc { color: #005B82 } /* Name.Class */
|
||||
html[data-theme="light"] .highlight .no { color: #005B82 } /* Name.Constant */
|
||||
html[data-theme="light"] .highlight .nd { color: #7F4707 } /* Name.Decorator */
|
||||
html[data-theme="light"] .highlight .ni { color: #00622F } /* Name.Entity */
|
||||
html[data-theme="light"] .highlight .ne { color: #6730C5 } /* Name.Exception */
|
||||
html[data-theme="light"] .highlight .nf { color: #005B82 } /* Name.Function */
|
||||
html[data-theme="light"] .highlight .nl { color: #7F4707 } /* Name.Label */
|
||||
html[data-theme="light"] .highlight .nn { color: #080808 } /* Name.Namespace */
|
||||
html[data-theme="light"] .highlight .nx { color: #080808 } /* Name.Other */
|
||||
html[data-theme="light"] .highlight .py { color: #005b82 } /* Name.Property */
|
||||
html[data-theme="light"] .highlight .nt { color: #005b82 } /* Name.Tag */
|
||||
html[data-theme="light"] .highlight .nv { color: #a12236 } /* Name.Variable */
|
||||
html[data-theme="light"] .highlight .ow { color: #6730c5 } /* Operator.Word */
|
||||
html[data-theme="light"] .highlight .py { color: #005B82 } /* Name.Property */
|
||||
html[data-theme="light"] .highlight .nt { color: #005B82 } /* Name.Tag */
|
||||
html[data-theme="light"] .highlight .nv { color: #A12236 } /* Name.Variable */
|
||||
html[data-theme="light"] .highlight .ow { color: #6730C5 } /* Operator.Word */
|
||||
html[data-theme="light"] .highlight .pm { color: #080808 } /* Punctuation.Marker */
|
||||
html[data-theme="light"] .highlight .w { color: #080808 } /* Text.Whitespace */
|
||||
html[data-theme="light"] .highlight .mb { color: #7f4707 } /* Literal.Number.Bin */
|
||||
html[data-theme="light"] .highlight .mf { color: #7f4707 } /* Literal.Number.Float */
|
||||
html[data-theme="light"] .highlight .mh { color: #7f4707 } /* Literal.Number.Hex */
|
||||
html[data-theme="light"] .highlight .mi { color: #7f4707 } /* Literal.Number.Integer */
|
||||
html[data-theme="light"] .highlight .mo { color: #7f4707 } /* Literal.Number.Oct */
|
||||
html[data-theme="light"] .highlight .sa { color: #00622f } /* Literal.String.Affix */
|
||||
html[data-theme="light"] .highlight .sb { color: #00622f } /* Literal.String.Backtick */
|
||||
html[data-theme="light"] .highlight .sc { color: #00622f } /* Literal.String.Char */
|
||||
html[data-theme="light"] .highlight .dl { color: #00622f } /* Literal.String.Delimiter */
|
||||
html[data-theme="light"] .highlight .sd { color: #00622f } /* Literal.String.Doc */
|
||||
html[data-theme="light"] .highlight .s2 { color: #00622f } /* Literal.String.Double */
|
||||
html[data-theme="light"] .highlight .se { color: #00622f } /* Literal.String.Escape */
|
||||
html[data-theme="light"] .highlight .sh { color: #00622f } /* Literal.String.Heredoc */
|
||||
html[data-theme="light"] .highlight .si { color: #00622f } /* Literal.String.Interpol */
|
||||
html[data-theme="light"] .highlight .sx { color: #00622f } /* Literal.String.Other */
|
||||
html[data-theme="light"] .highlight .sr { color: #a12236 } /* Literal.String.Regex */
|
||||
html[data-theme="light"] .highlight .s1 { color: #00622f } /* Literal.String.Single */
|
||||
html[data-theme="light"] .highlight .ss { color: #005b82 } /* Literal.String.Symbol */
|
||||
html[data-theme="light"] .highlight .bp { color: #7f4707 } /* Name.Builtin.Pseudo */
|
||||
html[data-theme="light"] .highlight .fm { color: #005b82 } /* Name.Function.Magic */
|
||||
html[data-theme="light"] .highlight .vc { color: #a12236 } /* Name.Variable.Class */
|
||||
html[data-theme="light"] .highlight .vg { color: #a12236 } /* Name.Variable.Global */
|
||||
html[data-theme="light"] .highlight .vi { color: #a12236 } /* Name.Variable.Instance */
|
||||
html[data-theme="light"] .highlight .vm { color: #7f4707 } /* Name.Variable.Magic */
|
||||
html[data-theme="light"] .highlight .il { color: #7f4707 } /* Literal.Number.Integer.Long */
|
||||
html[data-theme="light"] .highlight .mb { color: #7F4707 } /* Literal.Number.Bin */
|
||||
html[data-theme="light"] .highlight .mf { color: #7F4707 } /* Literal.Number.Float */
|
||||
html[data-theme="light"] .highlight .mh { color: #7F4707 } /* Literal.Number.Hex */
|
||||
html[data-theme="light"] .highlight .mi { color: #7F4707 } /* Literal.Number.Integer */
|
||||
html[data-theme="light"] .highlight .mo { color: #7F4707 } /* Literal.Number.Oct */
|
||||
html[data-theme="light"] .highlight .sa { color: #00622F } /* Literal.String.Affix */
|
||||
html[data-theme="light"] .highlight .sb { color: #00622F } /* Literal.String.Backtick */
|
||||
html[data-theme="light"] .highlight .sc { color: #00622F } /* Literal.String.Char */
|
||||
html[data-theme="light"] .highlight .dl { color: #00622F } /* Literal.String.Delimiter */
|
||||
html[data-theme="light"] .highlight .sd { color: #00622F } /* Literal.String.Doc */
|
||||
html[data-theme="light"] .highlight .s2 { color: #00622F } /* Literal.String.Double */
|
||||
html[data-theme="light"] .highlight .se { color: #00622F } /* Literal.String.Escape */
|
||||
html[data-theme="light"] .highlight .sh { color: #00622F } /* Literal.String.Heredoc */
|
||||
html[data-theme="light"] .highlight .si { color: #00622F } /* Literal.String.Interpol */
|
||||
html[data-theme="light"] .highlight .sx { color: #00622F } /* Literal.String.Other */
|
||||
html[data-theme="light"] .highlight .sr { color: #A12236 } /* Literal.String.Regex */
|
||||
html[data-theme="light"] .highlight .s1 { color: #00622F } /* Literal.String.Single */
|
||||
html[data-theme="light"] .highlight .ss { color: #005B82 } /* Literal.String.Symbol */
|
||||
html[data-theme="light"] .highlight .bp { color: #7F4707 } /* Name.Builtin.Pseudo */
|
||||
html[data-theme="light"] .highlight .fm { color: #005B82 } /* Name.Function.Magic */
|
||||
html[data-theme="light"] .highlight .vc { color: #A12236 } /* Name.Variable.Class */
|
||||
html[data-theme="light"] .highlight .vg { color: #A12236 } /* Name.Variable.Global */
|
||||
html[data-theme="light"] .highlight .vi { color: #A12236 } /* Name.Variable.Instance */
|
||||
html[data-theme="light"] .highlight .vm { color: #7F4707 } /* Name.Variable.Magic */
|
||||
html[data-theme="light"] .highlight .il { color: #7F4707 } /* Literal.Number.Integer.Long */
|
||||
html[data-theme="dark"] .highlight pre { line-height: 125%; }
|
||||
html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e }
|
||||
html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 }
|
||||
html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */
|
||||
html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */
|
||||
html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */
|
||||
html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */
|
||||
html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */
|
||||
html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */
|
||||
html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */
|
||||
html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */
|
||||
html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */
|
||||
html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */
|
||||
html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */
|
||||
html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */
|
||||
html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */
|
||||
html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */
|
||||
html[data-theme="dark"] .highlight { background: #2b2b2b; color: #F8F8F2 }
|
||||
html[data-theme="dark"] .highlight .c { color: #FFD900 } /* Comment */
|
||||
html[data-theme="dark"] .highlight .err { color: #FFA07A } /* Error */
|
||||
html[data-theme="dark"] .highlight .k { color: #DCC6E0 } /* Keyword */
|
||||
html[data-theme="dark"] .highlight .l { color: #FFD900 } /* Literal */
|
||||
html[data-theme="dark"] .highlight .n { color: #F8F8F2 } /* Name */
|
||||
html[data-theme="dark"] .highlight .o { color: #ABE338 } /* Operator */
|
||||
html[data-theme="dark"] .highlight .p { color: #F8F8F2 } /* Punctuation */
|
||||
html[data-theme="dark"] .highlight .ch { color: #FFD900 } /* Comment.Hashbang */
|
||||
html[data-theme="dark"] .highlight .cm { color: #FFD900 } /* Comment.Multiline */
|
||||
html[data-theme="dark"] .highlight .cp { color: #FFD900 } /* Comment.Preproc */
|
||||
html[data-theme="dark"] .highlight .cpf { color: #FFD900 } /* Comment.PreprocFile */
|
||||
html[data-theme="dark"] .highlight .c1 { color: #FFD900 } /* Comment.Single */
|
||||
html[data-theme="dark"] .highlight .cs { color: #FFD900 } /* Comment.Special */
|
||||
html[data-theme="dark"] .highlight .gd { color: #00E0E0 } /* Generic.Deleted */
|
||||
html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */
|
||||
html[data-theme="dark"] .highlight .gh { color: #00E0E0 } /* Generic.Heading */
|
||||
html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */
|
||||
html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */
|
||||
html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */
|
||||
html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */
|
||||
html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */
|
||||
html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */
|
||||
html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */
|
||||
html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */
|
||||
html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */
|
||||
html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */
|
||||
html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */
|
||||
html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */
|
||||
html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */
|
||||
html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */
|
||||
html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */
|
||||
html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */
|
||||
html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */
|
||||
html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */
|
||||
html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */
|
||||
html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */
|
||||
html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */
|
||||
html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */
|
||||
html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */
|
||||
html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */
|
||||
html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */
|
||||
html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */
|
||||
html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */
|
||||
html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */
|
||||
html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */
|
||||
html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */
|
||||
html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */
|
||||
html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */
|
||||
html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */
|
||||
html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */
|
||||
html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */
|
||||
html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */
|
||||
html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */
|
||||
html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */
|
||||
html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */
|
||||
html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */
|
||||
html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */
|
||||
html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */
|
||||
html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */
|
||||
html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */
|
||||
html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */
|
||||
html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */
|
||||
html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */
|
||||
html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */
|
||||
html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */
|
||||
html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */
|
||||
html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */
|
||||
html[data-theme="dark"] .highlight .il { color: #ffd900 } /* Literal.Number.Integer.Long */
|
||||
html[data-theme="dark"] .highlight .gu { color: #00E0E0 } /* Generic.Subheading */
|
||||
html[data-theme="dark"] .highlight .kc { color: #DCC6E0 } /* Keyword.Constant */
|
||||
html[data-theme="dark"] .highlight .kd { color: #DCC6E0 } /* Keyword.Declaration */
|
||||
html[data-theme="dark"] .highlight .kn { color: #DCC6E0 } /* Keyword.Namespace */
|
||||
html[data-theme="dark"] .highlight .kp { color: #DCC6E0 } /* Keyword.Pseudo */
|
||||
html[data-theme="dark"] .highlight .kr { color: #DCC6E0 } /* Keyword.Reserved */
|
||||
html[data-theme="dark"] .highlight .kt { color: #FFD900 } /* Keyword.Type */
|
||||
html[data-theme="dark"] .highlight .ld { color: #FFD900 } /* Literal.Date */
|
||||
html[data-theme="dark"] .highlight .m { color: #FFD900 } /* Literal.Number */
|
||||
html[data-theme="dark"] .highlight .s { color: #ABE338 } /* Literal.String */
|
||||
html[data-theme="dark"] .highlight .na { color: #FFD900 } /* Name.Attribute */
|
||||
html[data-theme="dark"] .highlight .nb { color: #FFD900 } /* Name.Builtin */
|
||||
html[data-theme="dark"] .highlight .nc { color: #00E0E0 } /* Name.Class */
|
||||
html[data-theme="dark"] .highlight .no { color: #00E0E0 } /* Name.Constant */
|
||||
html[data-theme="dark"] .highlight .nd { color: #FFD900 } /* Name.Decorator */
|
||||
html[data-theme="dark"] .highlight .ni { color: #ABE338 } /* Name.Entity */
|
||||
html[data-theme="dark"] .highlight .ne { color: #DCC6E0 } /* Name.Exception */
|
||||
html[data-theme="dark"] .highlight .nf { color: #00E0E0 } /* Name.Function */
|
||||
html[data-theme="dark"] .highlight .nl { color: #FFD900 } /* Name.Label */
|
||||
html[data-theme="dark"] .highlight .nn { color: #F8F8F2 } /* Name.Namespace */
|
||||
html[data-theme="dark"] .highlight .nx { color: #F8F8F2 } /* Name.Other */
|
||||
html[data-theme="dark"] .highlight .py { color: #00E0E0 } /* Name.Property */
|
||||
html[data-theme="dark"] .highlight .nt { color: #00E0E0 } /* Name.Tag */
|
||||
html[data-theme="dark"] .highlight .nv { color: #FFA07A } /* Name.Variable */
|
||||
html[data-theme="dark"] .highlight .ow { color: #DCC6E0 } /* Operator.Word */
|
||||
html[data-theme="dark"] .highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */
|
||||
html[data-theme="dark"] .highlight .w { color: #F8F8F2 } /* Text.Whitespace */
|
||||
html[data-theme="dark"] .highlight .mb { color: #FFD900 } /* Literal.Number.Bin */
|
||||
html[data-theme="dark"] .highlight .mf { color: #FFD900 } /* Literal.Number.Float */
|
||||
html[data-theme="dark"] .highlight .mh { color: #FFD900 } /* Literal.Number.Hex */
|
||||
html[data-theme="dark"] .highlight .mi { color: #FFD900 } /* Literal.Number.Integer */
|
||||
html[data-theme="dark"] .highlight .mo { color: #FFD900 } /* Literal.Number.Oct */
|
||||
html[data-theme="dark"] .highlight .sa { color: #ABE338 } /* Literal.String.Affix */
|
||||
html[data-theme="dark"] .highlight .sb { color: #ABE338 } /* Literal.String.Backtick */
|
||||
html[data-theme="dark"] .highlight .sc { color: #ABE338 } /* Literal.String.Char */
|
||||
html[data-theme="dark"] .highlight .dl { color: #ABE338 } /* Literal.String.Delimiter */
|
||||
html[data-theme="dark"] .highlight .sd { color: #ABE338 } /* Literal.String.Doc */
|
||||
html[data-theme="dark"] .highlight .s2 { color: #ABE338 } /* Literal.String.Double */
|
||||
html[data-theme="dark"] .highlight .se { color: #ABE338 } /* Literal.String.Escape */
|
||||
html[data-theme="dark"] .highlight .sh { color: #ABE338 } /* Literal.String.Heredoc */
|
||||
html[data-theme="dark"] .highlight .si { color: #ABE338 } /* Literal.String.Interpol */
|
||||
html[data-theme="dark"] .highlight .sx { color: #ABE338 } /* Literal.String.Other */
|
||||
html[data-theme="dark"] .highlight .sr { color: #FFA07A } /* Literal.String.Regex */
|
||||
html[data-theme="dark"] .highlight .s1 { color: #ABE338 } /* Literal.String.Single */
|
||||
html[data-theme="dark"] .highlight .ss { color: #00E0E0 } /* Literal.String.Symbol */
|
||||
html[data-theme="dark"] .highlight .bp { color: #FFD900 } /* Name.Builtin.Pseudo */
|
||||
html[data-theme="dark"] .highlight .fm { color: #00E0E0 } /* Name.Function.Magic */
|
||||
html[data-theme="dark"] .highlight .vc { color: #FFA07A } /* Name.Variable.Class */
|
||||
html[data-theme="dark"] .highlight .vg { color: #FFA07A } /* Name.Variable.Global */
|
||||
html[data-theme="dark"] .highlight .vi { color: #FFA07A } /* Name.Variable.Instance */
|
||||
html[data-theme="dark"] .highlight .vm { color: #FFD900 } /* Name.Variable.Magic */
|
||||
html[data-theme="dark"] .highlight .il { color: #FFD900 } /* Literal.Number.Integer.Long */
|
||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+7
-7
@@ -5,20 +5,20 @@
|
||||
|
||||
{% macro head_pre_assets() %}
|
||||
<!-- Loaded before other Sphinx assets -->
|
||||
<link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
|
||||
<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
|
||||
<link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=8878045cc6db502f8baf" rel="stylesheet" />
|
||||
<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=8878045cc6db502f8baf" rel="stylesheet" />
|
||||
{% endmacro %}
|
||||
|
||||
{% macro head_js_preload() %}
|
||||
<!-- So that users can add custom icons -->
|
||||
<script src="{{ pathto('_static/scripts/fontawesome.js', 1) }}?digest=26a4bc78f4c0ddb94549"></script>
|
||||
<script src="{{ pathto('_static/scripts/fontawesome.js', 1) }}?digest=8878045cc6db502f8baf"></script>
|
||||
<!-- Pre-loaded scripts that we'll load fully later -->
|
||||
<link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=26a4bc78f4c0ddb94549" />
|
||||
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=26a4bc78f4c0ddb94549" />
|
||||
<link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=8878045cc6db502f8baf" />
|
||||
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=8878045cc6db502f8baf" />
|
||||
{% endmacro %}
|
||||
|
||||
{% macro body_post() %}
|
||||
<!-- Scripts loaded after <body> so the DOM is not blocked -->
|
||||
<script defer src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=26a4bc78f4c0ddb94549"></script>
|
||||
<script defer src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=26a4bc78f4c0ddb94549"></script>
|
||||
<script defer src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=8878045cc6db502f8baf"></script>
|
||||
<script defer src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=8878045cc6db502f8baf"></script>
|
||||
{% endmacro %}
|
||||
Vendored
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/allocator.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('allocator_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -129,10 +143,13 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:aa23e2f20a336d0b159c097087194634e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="allocator_8h.html">allocator.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
var allocator_8h =
|
||||
[
|
||||
[ "mlx::core::allocator::Buffer", "classmlx_1_1core_1_1allocator_1_1_buffer.html", "classmlx_1_1core_1_1allocator_1_1_buffer" ],
|
||||
[ "mlx::core::allocator::Allocator", "classmlx_1_1core_1_1allocator_1_1_allocator.html", "classmlx_1_1core_1_1allocator_1_1_allocator" ],
|
||||
[ "mlx::core::allocator::CommonAllocator", "classmlx_1_1core_1_1allocator_1_1_common_allocator.html", "classmlx_1_1core_1_1allocator_1_1_common_allocator" ],
|
||||
[ "mlx::core::allocator::allocator", "namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e", null ],
|
||||
[ "mlx::core::allocator::free", "namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5", null ],
|
||||
[ "mlx::core::allocator::malloc", "namespacemlx_1_1core_1_1allocator.html#a560d10a166e3c294f3757166f9bd6801", null ],
|
||||
[ "mlx::core::allocator::malloc_or_wait", "namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc", null ]
|
||||
];
|
||||
+50
-34
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/allocator.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('allocator_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">allocator.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -104,7 +118,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">// WARNING: Only Buffer objects constructed from and those that wrap</span></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// raw pointers from mlx::allocator are supported.</span></div>
|
||||
<div class="foldopen" id="foldopen00012" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html"> 12</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_buffer.html"> 12</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300">Buffer</a> {</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">void</span>* ptr_;</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
|
||||
@@ -137,17 +151,17 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc"> 37</a></span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">malloc_or_wait</a>(<span class="keywordtype">size_t</span> size);</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="foldopen" id="foldopen00039" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html"> 39</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a> {</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html"> 39</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a> {</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4"> 42</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a9a17d2c7a97772bf4a15e6c74af34ca4">malloc</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>, <span class="keywordtype">bool</span> allow_swap = <span class="keyword">false</span>) = 0;</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb"> 43</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb">free</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) = 0;</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6"> 44</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6">size</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">const</span> = 0;</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65"> 46</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2"> 47</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2">Allocator</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959"> 48</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959">Allocator</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4"> 49</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>& <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c"> 50</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>& <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c">operator=</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>&& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2"> 47</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2">Allocator</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959"> 48</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959">Allocator</a>(<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>&& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4"> 49</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>& <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c"> 50</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>& <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c">operator=</a>(<a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>&& other) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a90ad02c2e2a6ed89bb8bbf7b871efdf1"> 51</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a90ad02c2e2a6ed89bb8bbf7b871efdf1">~Allocator</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
|
||||
</div>
|
||||
@@ -155,15 +169,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e"> 54</a></span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>& <a class="code hl_function" href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">allocator</a>();</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
|
||||
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html"> 56</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">CommonAllocator</a> : <span class="keyword">public</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a> {</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html"> 56</a></span><span class="keyword">class </span>CommonAllocator : <span class="keyword">public</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a> {</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0"> 59</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0">malloc</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b">size</a>, <span class="keywordtype">bool</span> allow_swap = <span class="keyword">false</span>) <span class="keyword">override</span>;</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079"> 60</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079">free</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">override</span>;</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b"> 61</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b">size</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">const override</span>;</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">CommonAllocator</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0"> 65</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">Allocator</a>& <a class="code hl_friend" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0">allocator</a>();</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> CommonAllocator() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0"> 65</a></span> <span class="keyword">friend</span> <a class="code hl_function" href="classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65">Allocator</a>& <a class="code hl_friend" href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0">allocator</a>();</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
|
||||
@@ -184,7 +198,6 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_a990643feac06961c5599aac098c17b94"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#a990643feac06961c5599aac098c17b94">mlx::core::allocator::Buffer::ptr</a></div><div class="ttdeci">const void * ptr() const</div><div class="ttdef"><b>Definition</b> allocator.h:23</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_ac4fc2cc6aa1368cfb74aff329d9a1300"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300">mlx::core::allocator::Buffer::Buffer</a></div><div class="ttdeci">Buffer(void *ptr)</div><div class="ttdef"><b>Definition</b> allocator.h:17</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html_acb15b2f057568828ea09635ed968b62a"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html#acb15b2f057568828ea09635ed968b62a">mlx::core::allocator::Buffer::ptr</a></div><div class="ttdeci">void * ptr()</div><div class="ttdef"><b>Definition</b> allocator.h:26</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html">mlx::core::allocator::CommonAllocator</a></div><div class="ttdef"><b>Definition</b> allocator.h:56</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_a4f3d5de6b8c0eba22e9403b28a5ef3f0"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a4f3d5de6b8c0eba22e9403b28a5ef3f0">mlx::core::allocator::CommonAllocator::malloc</a></div><div class="ttdeci">virtual Buffer malloc(size_t size, bool allow_swap=false) override</div><div class="ttdoc">A general CPU allocator.</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_a84b50d1a3cbffa12c1a6cf0ed8c71079"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079">mlx::core::allocator::CommonAllocator::free</a></div><div class="ttdeci">virtual void free(Buffer buffer) override</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_common_allocator_html_aafa92e8310db089b1ac72b840777e26b"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b">mlx::core::allocator::CommonAllocator::size</a></div><div class="ttdeci">virtual size_t size(Buffer buffer) const override</div></div>
|
||||
@@ -195,10 +208,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_a86ac0a11ff78f21e717f641716c34abc"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#a86ac0a11ff78f21e717f641716c34abc">mlx::core::allocator::malloc_or_wait</a></div><div class="ttdeci">Buffer malloc_or_wait(size_t size)</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1allocator_html_aa23e2f20a336d0b159c097087194634e"><div class="ttname"><a href="namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e">mlx::core::allocator::allocator</a></div><div class="ttdeci">Allocator & allocator()</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="allocator_8h.html">allocator.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+198
-157
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: Class List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,24 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('annotated.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -95,10 +113,10 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1is__static.html" target="_self">is_static</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_3_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1make__void.html" target="_self">make_void</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_4_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element.html" target="_self">pointer_element</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_5_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html" target="_self">pointer_element< constant T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_6_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html" target="_self">pointer_element< device T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_7_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html" target="_self">pointer_element< thread T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_8_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html" target="_self">pointer_element< threadgroup T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_5_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element.html" target="_self">pointer_element< constant T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_6_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element.html" target="_self">pointer_element< device T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_7_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element.html" target="_self">pointer_element< thread T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_0_8_" class="odd" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmetal_1_1pointer__element.html" target="_self">pointer_element< threadgroup T * ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="dynsection.toggleFolder('1_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx.html" target="_self">mlx</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core.html" target="_self">core</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1allocator.html" target="_self">allocator</a></td><td class="desc"></td></tr>
|
||||
@@ -169,12 +187,14 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_1_0_1_60_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_1_61_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1detail_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_2_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed.html" target="_self">distributed</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html" target="_self">AllGather</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_reduce.html" target="_self">AllReduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_dist_primitive.html" target="_self">DistPrimitive</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" target="_self">Group</a></td><td class="desc">A <a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" title="A distributed::Group represents a group of independent mlx processes that can communicate.">distributed::Group</a> represents a group of independent mlx processes that can communicate </td></tr>
|
||||
<tr id="row_1_0_2_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_recv.html" target="_self">Recv</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_send.html" target="_self">Send</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_2_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_2_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1distributed_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1detail_1_1_group_impl.html" target="_self">GroupImpl</a></td><td class="desc">Abstract base class of a distributed group implementation </td></tr>
|
||||
<tr id="row_1_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_gather.html" target="_self">AllGather</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_all_reduce.html" target="_self">AllReduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_dist_primitive.html" target="_self">DistPrimitive</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" target="_self">Group</a></td><td class="desc">A <a class="el" href="structmlx_1_1core_1_1distributed_1_1_group.html" title="A distributed::Group represents a group of independent mlx processes that can communicate.">distributed::Group</a> represents a group of independent mlx processes that can communicate </td></tr>
|
||||
<tr id="row_1_0_2_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_recv.html" target="_self">Recv</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_2_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1distributed_1_1_send.html" target="_self">Send</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_3_" class="arrow" onclick="dynsection.toggleFolder('1_0_3_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1fast.html" target="_self">fast</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_affine_quantize.html" target="_self">AffineQuantize</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1fast_1_1_custom.html" target="_self">Custom</a></td><td class="desc"></td></tr>
|
||||
@@ -192,13 +212,14 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_1_0_4_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1io_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_4_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1io_1_1_writer.html" target="_self">Writer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_5_" class="arrow" onclick="dynsection.toggleFolder('1_0_5_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1metal.html" target="_self">metal</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_5_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_5_0_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html" target="_self">DeviceStream</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_fence.html" target="_self">Fence</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html" target="_self">MetalAllocator</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_residency_set.html" target="_self">ResidencySet</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_buffer.html" target="_self">Buffer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_1_0_5_1_" class="arrow" onclick="dynsection.toggleFolder('1_0_5_1_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_device_stream.html" target="_self">DeviceStream</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1metal_1_1_fence.html" target="_self">Fence</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html" target="_self">MetalAllocator</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_5_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1metal_1_1_residency_set.html" target="_self">ResidencySet</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_6_" class="arrow" onclick="dynsection.toggleFolder('1_0_6_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1random.html" target="_self">random</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1random_1_1_key_sequence.html" target="_self">KeySequence</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_7_" class="arrow" onclick="dynsection.toggleFolder('1_0_7_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1core_1_1scheduler.html" target="_self">scheduler</a></td><td class="desc"></td></tr>
|
||||
@@ -229,117 +250,135 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_1_0_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_bitwise_binary.html" target="_self">BitwiseBinary</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_block_masked_m_m.html" target="_self">BlockMaskedMM</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast.html" target="_self">Broadcast</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_contiguous.html" target="_self">Contiguous</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_contiguous_reduce.html" target="_self">DefaultContiguousReduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_strided_reduce.html" target="_self">DefaultStridedReduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_eigh.html" target="_self">Eigh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_f_f_t.html" target="_self">FFT</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_full.html" target="_self">Full</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather.html" target="_self">Gather</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_63_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_64_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_65_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_66_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_67_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_68_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_69_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_122_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_123_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_124_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_uniform.html" target="_self">Uniform</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_125_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_broadcast_axes.html" target="_self">BroadcastAxes</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cholesky.html" target="_self">Cholesky</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_33_" class="arrow" onclick="dynsection.toggleFolder('1_0_33_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder.html" target="_self">CommandEncoder</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_33_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_command_encoder_1_1_concurrent_context.html" target="_self">ConcurrentContext</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_compiled.html" target="_self">Compiled</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_35_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex128__t.html" target="_self">complex128_t</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_36_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1complex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_37_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_concatenate.html" target="_self">Concatenate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_38_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_39_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_contiguous.html" target="_self">Contiguous</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_40_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html" target="_self">ContiguousIterator</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_41_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_convolution.html" target="_self">Convolution</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_42_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_copy.html" target="_self">Copy</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_43_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_44_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_45_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_custom_transforms.html" target="_self">CustomTransforms</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_46_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_contiguous_reduce.html" target="_self">DefaultContiguousReduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_47_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_default_strided_reduce.html" target="_self">DefaultStridedReduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_48_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_depends.html" target="_self">Depends</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_device.html" target="_self">Device</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_dtype.html" target="_self">Dtype</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice.html" target="_self">DynamicSlice</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_dynamic_slice_update.html" target="_self">DynamicSliceUpdate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_eigh.html" target="_self">Eigh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_equal.html" target="_self">Equal</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf.html" target="_self">Erf</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_58_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_erf_inv.html" target="_self">ErfInv</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_59_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_60_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_exp.html" target="_self">Exp</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_61_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expand_dims.html" target="_self">ExpandDims</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_62_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_expm1.html" target="_self">Expm1</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_63_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_f_f_t.html" target="_self">FFT</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_64_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1finfo.html" target="_self">finfo</a></td><td class="desc">Holds information about floating-point types </td></tr>
|
||||
<tr id="row_1_0_65_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_flatten.html" target="_self">Flatten</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_66_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_floor.html" target="_self">Floor</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_67_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_full.html" target="_self">Full</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_68_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_function_exporter.html" target="_self">FunctionExporter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_69_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather.html" target="_self">Gather</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_70_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_m_m.html" target="_self">GatherMM</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_71_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_gather_q_m_m.html" target="_self">GatherQMM</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_72_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater.html" target="_self">Greater</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_73_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_greater_equal.html" target="_self">GreaterEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_74_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_hadamard.html" target="_self">Hadamard</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_75_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_imag.html" target="_self">Imag</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_76_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_imported_function.html" target="_self">ImportedFunction</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_77_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_inverse.html" target="_self">Inverse</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_78_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_jit_compiler.html" target="_self">JitCompiler</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_79_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less.html" target="_self">Less</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_80_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_81_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_82_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_83_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_84_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_log_add_exp.html" target="_self">LogAddExp</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_85_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_and.html" target="_self">LogicalAnd</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_86_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_87_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_88_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_matmul.html" target="_self">Matmul</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_89_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_90_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_91_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_92_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_negative.html" target="_self">Negative</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_93_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_node_namer.html" target="_self">NodeNamer</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_94_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_not_equal.html" target="_self">NotEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_95_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_number_of_elements.html" target="_self">NumberOfElements</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_96_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_97_" class="arrow" onclick="dynsection.toggleFolder('1_0_97_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits< bfloat16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_97_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">bfloat_or_bits</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_98_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits< float ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_0_99_" class="arrow" onclick="dynsection.toggleFolder('1_0_99_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">numeric_limits< float16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_99_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1numeric__limits.html" target="_self">half_or_bits</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_100_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_pad.html" target="_self">Pad</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_101_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_partition.html" target="_self">Partition</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_102_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_power.html" target="_self">Power</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_103_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_primitive.html" target="_self">Primitive</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_104_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_print_formatter.html" target="_self">PrintFormatter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_105_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_q_r_f.html" target="_self">QRF</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_106_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_quantized_matmul.html" target="_self">QuantizedMatmul</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_107_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_random_bits.html" target="_self">RandomBits</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_108_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_real.html" target="_self">Real</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_109_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reduce.html" target="_self">Reduce</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_110_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_reduction_plan.html" target="_self">ReductionPlan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_111_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_remainder.html" target="_self">Remainder</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_112_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_reshape.html" target="_self">Reshape</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_113_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_round.html" target="_self">Round</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_114_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scan.html" target="_self">Scan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_115_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_scatter.html" target="_self">Scatter</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_116_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_select.html" target="_self">Select</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_117_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sigmoid.html" target="_self">Sigmoid</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_118_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sign.html" target="_self">Sign</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_119_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sin.html" target="_self">Sin</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_120_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sinh.html" target="_self">Sinh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_121_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_122_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_slice_update.html" target="_self">SliceUpdate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_123_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_softmax.html" target="_self">Softmax</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_124_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sort.html" target="_self">Sort</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_125_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_split.html" target="_self">Split</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_126_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_sqrt.html" target="_self">Sqrt</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_127_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_square.html" target="_self">Square</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_128_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_squeeze.html" target="_self">Squeeze</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_129_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_stop_gradient.html" target="_self">StopGradient</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_130_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream.html" target="_self">Stream</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_131_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_stream_context.html" target="_self">StreamContext</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_132_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_subtract.html" target="_self">Subtract</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_133_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_s_v_d.html" target="_self">SVD</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_134_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tan.html" target="_self">Tan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_135_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_tanh.html" target="_self">Tanh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_136_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_transpose.html" target="_self">Transpose</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_137_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1core_1_1_type_to_dtype.html" target="_self">TypeToDtype</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_138_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unary_primitive.html" target="_self">UnaryPrimitive</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_139_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_unflatten.html" target="_self">Unflatten</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_140_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmlx_1_1core_1_1_view.html" target="_self">View</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_1_" class="arrow" onclick="dynsection.toggleFolder('1_1_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemlx_1_1steel.html" target="_self">steel</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_accum_helper.html" target="_self">AccumHelper</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_attn_params.html" target="_self">AttnParams</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html" target="_self">BaseMMAFrag</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html" target="_self">BaseMMAFrag< T, 8, 8 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html" target="_self">BaseMMAFrag< T, 8, 8 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_1_1_4_" class="arrow" onclick="dynsection.toggleFolder('1_1_4_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_loader.html" target="_self">BlockLoader</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html" target="_self">ReadVector</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_loader_t.html" target="_self">BlockLoaderT</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_m_m_a.html" target="_self">BlockMMA</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_block_swizzle.html" target="_self">BlockSwizzle</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html" target="_self">ChannelHelper< 1 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html" target="_self">ChannelHelper< 2 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html" target="_self">ChannelHelper< 3 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html" target="_self">ChannelHelper< 4 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper< 1 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper< 2 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper< 3 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_channel_helper.html" target="_self">ChannelHelper< 4 ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_general_base_info.html" target="_self">Conv2DGeneralBaseInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_general_jump_params.html" target="_self">Conv2DGeneralJumpParams</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html" target="_self">Conv2DInputBlockLoaderGeneral</a></td><td class="desc"></td></tr>
|
||||
@@ -357,7 +396,7 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_1_1_27_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html" target="_self">ImplicitGemmConv2DParams</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_28_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1integral__constant.html" target="_self">integral_constant</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_29_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1is__integral.html" target="_self">is_integral</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.html" target="_self">is_integral< integral_constant< T, v > ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_30_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1is__integral.html" target="_self">is_integral< integral_constant< T, v > ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_31_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_layout2_d.html" target="_self">Layout2D</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_32_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_loop_alignment.html" target="_self">LoopAlignment</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_1_33_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html" target="_self">MMATile</a></td><td class="desc"></td></tr>
|
||||
@@ -373,7 +412,7 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_2_0_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1threading_1_1latch.html" target="_self">latch</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_0_3_" class="odd" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1threading_1_1thread__pool.html" target="_self">thread_pool</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_1_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1add__vec.html" target="_self">add_vec</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html" target="_self">add_vec< cmplx< T > ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_2_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpocketfft_1_1detail_1_1add__vec.html" target="_self">add_vec< cmplx< T > ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_3_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1arr.html" target="_self">arr</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_4_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1arr__info.html" target="_self">arr_info</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_5_" class="odd" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpocketfft_1_1detail_1_1cfftp.html" target="_self">cfftp</a></td><td class="desc"></td></tr>
|
||||
@@ -420,14 +459,14 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ceil.html" target="_self">Ceil</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcomplex64__t.html" target="_self">complex64_t</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type.html" target="_self">ConditionalType</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html" target="_self">ConditionalType< true, T, U ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conditional_type.html" target="_self">ConditionalType< true, T, U ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_conjugate.html" target="_self">Conjugate</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cos.html" target="_self">Cos</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cosh.html" target="_self">Cosh</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_max.html" target="_self">CumMax</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_min.html" target="_self">CumMin</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.html" target="_self">CumProd</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod_3_01bool_01_4.html" target="_self">CumProd< bool ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_prod.html" target="_self">CumProd< bool ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_cum_sum.html" target="_self">CumSum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_divide.html" target="_self">Divide</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_div_mod.html" target="_self">DivMod</a></td><td class="desc"></td></tr>
|
||||
@@ -453,19 +492,19 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_53_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_equal.html" target="_self">LessEqual</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_less_than.html" target="_self">LessThan</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_55_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bfloat16__t_01_4.html" target="_self">Limits< bfloat16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01bool_01_4.html" target="_self">Limits< bool ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01complex64__t_01_4.html" target="_self">Limits< complex64_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01float_01_4.html" target="_self">Limits< float ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01half_01_4.html" target="_self">Limits< half ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int16__t_01_4.html" target="_self">Limits< int16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int32__t_01_4.html" target="_self">Limits< int32_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int64__t_01_4.html" target="_self">Limits< int64_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01int8__t_01_4.html" target="_self">Limits< int8_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint16__t_01_4.html" target="_self">Limits< uint16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint32__t_01_4.html" target="_self">Limits< uint32_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint64__t_01_4.html" target="_self">Limits< uint64_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits_3_01uint8__t_01_4.html" target="_self">Limits< uint8_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< bfloat16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_57_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< bool ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< complex64_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_59_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< float ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< half ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_61_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< int16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< int32_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< int64_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< int8_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_65_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< uint16_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< uint32_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_67_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< uint64_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_limits.html" target="_self">Limits< uint8_t ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_69_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log.html" target="_self">Log</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log10.html" target="_self">Log10</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_71_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_log1p.html" target="_self">Log1p</a></td><td class="desc"></td></tr>
|
||||
@@ -475,15 +514,15 @@ $(function(){ initResizable(false); });
|
||||
<tr id="row_75_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_not.html" target="_self">LogicalNot</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_logical_or.html" target="_self">LogicalOr</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_77_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html" target="_self">LoopedElemToLoc< 1, OffsetT, false ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html" target="_self">LoopedElemToLoc< 1, OffsetT, true ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc< 1, OffsetT, false ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_79_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_looped_elem_to_loc.html" target="_self">LoopedElemToLoc< 1, OffsetT, true ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max.html" target="_self">Max</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_81_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_maximum.html" target="_self">Maximum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_max_op.html" target="_self">MaxOp</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_83_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_min.html" target="_self">Min</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_minimum.html" target="_self">Minimum</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_85_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.html" target="_self">mlx_atomic</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html" target="_self">mlx_atomic< T, enable_if_t< is_metal_atomic< T > > ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmlx__atomic.html" target="_self">mlx_atomic< T, enable_if_t< is_metal_atomic< T > > ></a></td><td class="desc"></td></tr>
|
||||
<tr id="row_87_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_m_l_x_conv_params.html" target="_self">MLXConvParams</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_mul_op.html" target="_self">MulOp</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_89_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_multiply.html" target="_self">Multiply</a></td><td class="desc"></td></tr>
|
||||
@@ -521,10 +560,12 @@ $(function(){ initResizable(false); });
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+460
@@ -0,0 +1,460 @@
|
||||
var annotated_dup =
|
||||
[
|
||||
[ "metal", "namespacemetal.html", [
|
||||
[ "_numeric_limits_impl< bfloat16_t >", "structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html", "structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4" ],
|
||||
[ "is_empty", "structmetal_1_1is__empty.html", null ],
|
||||
[ "is_static", "structmetal_1_1is__static.html", null ],
|
||||
[ "make_void", "structmetal_1_1make__void.html", "structmetal_1_1make__void" ],
|
||||
[ "pointer_element", "structmetal_1_1pointer__element.html", null ],
|
||||
[ "pointer_element< constant T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ],
|
||||
[ "pointer_element< device T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ],
|
||||
[ "pointer_element< thread T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ],
|
||||
[ "pointer_element< threadgroup T * >", "structmetal_1_1pointer__element.html", "structmetal_1_1pointer__element" ]
|
||||
] ],
|
||||
[ "mlx", "namespacemlx.html", [
|
||||
[ "core", "namespacemlx_1_1core.html", [
|
||||
[ "allocator", "namespacemlx_1_1core_1_1allocator.html", [
|
||||
[ "Allocator", "classmlx_1_1core_1_1allocator_1_1_allocator.html", "classmlx_1_1core_1_1allocator_1_1_allocator" ],
|
||||
[ "Buffer", "classmlx_1_1core_1_1allocator_1_1_buffer.html", "classmlx_1_1core_1_1allocator_1_1_buffer" ],
|
||||
[ "CommonAllocator", "classmlx_1_1core_1_1allocator_1_1_common_allocator.html", "classmlx_1_1core_1_1allocator_1_1_common_allocator" ]
|
||||
] ],
|
||||
[ "detail", "namespacemlx_1_1core_1_1detail.html", [
|
||||
[ "Abs", "structmlx_1_1core_1_1detail_1_1_abs.html", "structmlx_1_1core_1_1detail_1_1_abs" ],
|
||||
[ "Add", "structmlx_1_1core_1_1detail_1_1_add.html", "structmlx_1_1core_1_1detail_1_1_add" ],
|
||||
[ "ArcCos", "structmlx_1_1core_1_1detail_1_1_arc_cos.html", "structmlx_1_1core_1_1detail_1_1_arc_cos" ],
|
||||
[ "ArcCosh", "structmlx_1_1core_1_1detail_1_1_arc_cosh.html", "structmlx_1_1core_1_1detail_1_1_arc_cosh" ],
|
||||
[ "ArcSin", "structmlx_1_1core_1_1detail_1_1_arc_sin.html", "structmlx_1_1core_1_1detail_1_1_arc_sin" ],
|
||||
[ "ArcSinh", "structmlx_1_1core_1_1detail_1_1_arc_sinh.html", "structmlx_1_1core_1_1detail_1_1_arc_sinh" ],
|
||||
[ "ArcTan", "structmlx_1_1core_1_1detail_1_1_arc_tan.html", "structmlx_1_1core_1_1detail_1_1_arc_tan" ],
|
||||
[ "ArcTan2", "structmlx_1_1core_1_1detail_1_1_arc_tan2.html", "structmlx_1_1core_1_1detail_1_1_arc_tan2" ],
|
||||
[ "ArcTanh", "structmlx_1_1core_1_1detail_1_1_arc_tanh.html", "structmlx_1_1core_1_1detail_1_1_arc_tanh" ],
|
||||
[ "BitwiseAnd", "structmlx_1_1core_1_1detail_1_1_bitwise_and.html", "structmlx_1_1core_1_1detail_1_1_bitwise_and" ],
|
||||
[ "BitwiseOr", "structmlx_1_1core_1_1detail_1_1_bitwise_or.html", "structmlx_1_1core_1_1detail_1_1_bitwise_or" ],
|
||||
[ "BitwiseXor", "structmlx_1_1core_1_1detail_1_1_bitwise_xor.html", "structmlx_1_1core_1_1detail_1_1_bitwise_xor" ],
|
||||
[ "Ceil", "structmlx_1_1core_1_1detail_1_1_ceil.html", "structmlx_1_1core_1_1detail_1_1_ceil" ],
|
||||
[ "Conjugate", "structmlx_1_1core_1_1detail_1_1_conjugate.html", "structmlx_1_1core_1_1detail_1_1_conjugate" ],
|
||||
[ "Cos", "structmlx_1_1core_1_1detail_1_1_cos.html", "structmlx_1_1core_1_1detail_1_1_cos" ],
|
||||
[ "Cosh", "structmlx_1_1core_1_1detail_1_1_cosh.html", "structmlx_1_1core_1_1detail_1_1_cosh" ],
|
||||
[ "Divide", "structmlx_1_1core_1_1detail_1_1_divide.html", "structmlx_1_1core_1_1detail_1_1_divide" ],
|
||||
[ "Equal", "structmlx_1_1core_1_1detail_1_1_equal.html", "structmlx_1_1core_1_1detail_1_1_equal" ],
|
||||
[ "Erf", "structmlx_1_1core_1_1detail_1_1_erf.html", "structmlx_1_1core_1_1detail_1_1_erf" ],
|
||||
[ "ErfInv", "structmlx_1_1core_1_1detail_1_1_erf_inv.html", "structmlx_1_1core_1_1detail_1_1_erf_inv" ],
|
||||
[ "Exp", "structmlx_1_1core_1_1detail_1_1_exp.html", "structmlx_1_1core_1_1detail_1_1_exp" ],
|
||||
[ "Expm1", "structmlx_1_1core_1_1detail_1_1_expm1.html", "structmlx_1_1core_1_1detail_1_1_expm1" ],
|
||||
[ "Floor", "structmlx_1_1core_1_1detail_1_1_floor.html", "structmlx_1_1core_1_1detail_1_1_floor" ],
|
||||
[ "Greater", "structmlx_1_1core_1_1detail_1_1_greater.html", "structmlx_1_1core_1_1detail_1_1_greater" ],
|
||||
[ "GreaterEqual", "structmlx_1_1core_1_1detail_1_1_greater_equal.html", "structmlx_1_1core_1_1detail_1_1_greater_equal" ],
|
||||
[ "Imag", "structmlx_1_1core_1_1detail_1_1_imag.html", "structmlx_1_1core_1_1detail_1_1_imag" ],
|
||||
[ "IntOrFloat", "unionmlx_1_1core_1_1detail_1_1_int_or_float.html", "unionmlx_1_1core_1_1detail_1_1_int_or_float" ],
|
||||
[ "InTracing", "structmlx_1_1core_1_1detail_1_1_in_tracing.html", "structmlx_1_1core_1_1detail_1_1_in_tracing" ],
|
||||
[ "LeftShift", "structmlx_1_1core_1_1detail_1_1_left_shift.html", "structmlx_1_1core_1_1detail_1_1_left_shift" ],
|
||||
[ "Less", "structmlx_1_1core_1_1detail_1_1_less.html", "structmlx_1_1core_1_1detail_1_1_less" ],
|
||||
[ "LessEqual", "structmlx_1_1core_1_1detail_1_1_less_equal.html", "structmlx_1_1core_1_1detail_1_1_less_equal" ],
|
||||
[ "Log", "structmlx_1_1core_1_1detail_1_1_log.html", "structmlx_1_1core_1_1detail_1_1_log" ],
|
||||
[ "Log10", "structmlx_1_1core_1_1detail_1_1_log10.html", "structmlx_1_1core_1_1detail_1_1_log10" ],
|
||||
[ "Log1p", "structmlx_1_1core_1_1detail_1_1_log1p.html", "structmlx_1_1core_1_1detail_1_1_log1p" ],
|
||||
[ "Log2", "structmlx_1_1core_1_1detail_1_1_log2.html", "structmlx_1_1core_1_1detail_1_1_log2" ],
|
||||
[ "LogAddExp", "structmlx_1_1core_1_1detail_1_1_log_add_exp.html", "structmlx_1_1core_1_1detail_1_1_log_add_exp" ],
|
||||
[ "LogicalAnd", "structmlx_1_1core_1_1detail_1_1_logical_and.html", "structmlx_1_1core_1_1detail_1_1_logical_and" ],
|
||||
[ "LogicalNot", "structmlx_1_1core_1_1detail_1_1_logical_not.html", "structmlx_1_1core_1_1detail_1_1_logical_not" ],
|
||||
[ "LogicalOr", "structmlx_1_1core_1_1detail_1_1_logical_or.html", "structmlx_1_1core_1_1detail_1_1_logical_or" ],
|
||||
[ "Maximum", "structmlx_1_1core_1_1detail_1_1_maximum.html", "structmlx_1_1core_1_1detail_1_1_maximum" ],
|
||||
[ "Minimum", "structmlx_1_1core_1_1detail_1_1_minimum.html", "structmlx_1_1core_1_1detail_1_1_minimum" ],
|
||||
[ "Multiply", "structmlx_1_1core_1_1detail_1_1_multiply.html", "structmlx_1_1core_1_1detail_1_1_multiply" ],
|
||||
[ "NaNEqual", "structmlx_1_1core_1_1detail_1_1_na_n_equal.html", "structmlx_1_1core_1_1detail_1_1_na_n_equal" ],
|
||||
[ "Negative", "structmlx_1_1core_1_1detail_1_1_negative.html", "structmlx_1_1core_1_1detail_1_1_negative" ],
|
||||
[ "NotEqual", "structmlx_1_1core_1_1detail_1_1_not_equal.html", "structmlx_1_1core_1_1detail_1_1_not_equal" ],
|
||||
[ "Power", "structmlx_1_1core_1_1detail_1_1_power.html", "structmlx_1_1core_1_1detail_1_1_power" ],
|
||||
[ "Real", "structmlx_1_1core_1_1detail_1_1_real.html", "structmlx_1_1core_1_1detail_1_1_real" ],
|
||||
[ "Remainder", "structmlx_1_1core_1_1detail_1_1_remainder.html", "structmlx_1_1core_1_1detail_1_1_remainder" ],
|
||||
[ "RetainGraph", "structmlx_1_1core_1_1detail_1_1_retain_graph.html", "structmlx_1_1core_1_1detail_1_1_retain_graph" ],
|
||||
[ "RightShift", "structmlx_1_1core_1_1detail_1_1_right_shift.html", "structmlx_1_1core_1_1detail_1_1_right_shift" ],
|
||||
[ "Round", "structmlx_1_1core_1_1detail_1_1_round.html", "structmlx_1_1core_1_1detail_1_1_round" ],
|
||||
[ "Rsqrt", "structmlx_1_1core_1_1detail_1_1_rsqrt.html", "structmlx_1_1core_1_1detail_1_1_rsqrt" ],
|
||||
[ "Select", "structmlx_1_1core_1_1detail_1_1_select.html", "structmlx_1_1core_1_1detail_1_1_select" ],
|
||||
[ "Sigmoid", "structmlx_1_1core_1_1detail_1_1_sigmoid.html", "structmlx_1_1core_1_1detail_1_1_sigmoid" ],
|
||||
[ "Sign", "structmlx_1_1core_1_1detail_1_1_sign.html", "structmlx_1_1core_1_1detail_1_1_sign" ],
|
||||
[ "Sin", "structmlx_1_1core_1_1detail_1_1_sin.html", "structmlx_1_1core_1_1detail_1_1_sin" ],
|
||||
[ "Sinh", "structmlx_1_1core_1_1detail_1_1_sinh.html", "structmlx_1_1core_1_1detail_1_1_sinh" ],
|
||||
[ "Sqrt", "structmlx_1_1core_1_1detail_1_1_sqrt.html", "structmlx_1_1core_1_1detail_1_1_sqrt" ],
|
||||
[ "Square", "structmlx_1_1core_1_1detail_1_1_square.html", "structmlx_1_1core_1_1detail_1_1_square" ],
|
||||
[ "Subtract", "structmlx_1_1core_1_1detail_1_1_subtract.html", "structmlx_1_1core_1_1detail_1_1_subtract" ],
|
||||
[ "Tan", "structmlx_1_1core_1_1detail_1_1_tan.html", "structmlx_1_1core_1_1detail_1_1_tan" ],
|
||||
[ "Tanh", "structmlx_1_1core_1_1detail_1_1_tanh.html", "structmlx_1_1core_1_1detail_1_1_tanh" ]
|
||||
] ],
|
||||
[ "distributed", "namespacemlx_1_1core_1_1distributed.html", [
|
||||
[ "detail", "namespacemlx_1_1core_1_1distributed_1_1detail.html", [
|
||||
[ "GroupImpl", "classmlx_1_1core_1_1distributed_1_1detail_1_1_group_impl.html", "classmlx_1_1core_1_1distributed_1_1detail_1_1_group_impl" ]
|
||||
] ],
|
||||
[ "AllGather", "classmlx_1_1core_1_1distributed_1_1_all_gather.html", "classmlx_1_1core_1_1distributed_1_1_all_gather" ],
|
||||
[ "AllReduce", "classmlx_1_1core_1_1distributed_1_1_all_reduce.html", "classmlx_1_1core_1_1distributed_1_1_all_reduce" ],
|
||||
[ "DistPrimitive", "classmlx_1_1core_1_1distributed_1_1_dist_primitive.html", "classmlx_1_1core_1_1distributed_1_1_dist_primitive" ],
|
||||
[ "Group", "structmlx_1_1core_1_1distributed_1_1_group.html", "structmlx_1_1core_1_1distributed_1_1_group" ],
|
||||
[ "Recv", "classmlx_1_1core_1_1distributed_1_1_recv.html", "classmlx_1_1core_1_1distributed_1_1_recv" ],
|
||||
[ "Send", "classmlx_1_1core_1_1distributed_1_1_send.html", "classmlx_1_1core_1_1distributed_1_1_send" ]
|
||||
] ],
|
||||
[ "fast", "namespacemlx_1_1core_1_1fast.html", [
|
||||
[ "AffineQuantize", "classmlx_1_1core_1_1fast_1_1_affine_quantize.html", "classmlx_1_1core_1_1fast_1_1_affine_quantize" ],
|
||||
[ "Custom", "classmlx_1_1core_1_1fast_1_1_custom.html", "classmlx_1_1core_1_1fast_1_1_custom" ],
|
||||
[ "CustomKernel", "classmlx_1_1core_1_1fast_1_1_custom_kernel.html", "classmlx_1_1core_1_1fast_1_1_custom_kernel" ],
|
||||
[ "CustomKernelShapeInfo", "structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html", "structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info" ],
|
||||
[ "LayerNorm", "classmlx_1_1core_1_1fast_1_1_layer_norm.html", "classmlx_1_1core_1_1fast_1_1_layer_norm" ],
|
||||
[ "LayerNormVJP", "classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html", "classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p" ],
|
||||
[ "RMSNorm", "classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html", "classmlx_1_1core_1_1fast_1_1_r_m_s_norm" ],
|
||||
[ "RMSNormVJP", "classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html", "classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p" ],
|
||||
[ "RoPE", "classmlx_1_1core_1_1fast_1_1_ro_p_e.html", "classmlx_1_1core_1_1fast_1_1_ro_p_e" ],
|
||||
[ "ScaledDotProductAttention", "classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html", "classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention" ]
|
||||
] ],
|
||||
[ "io", "namespacemlx_1_1core_1_1io.html", [
|
||||
[ "FileWriter", "classmlx_1_1core_1_1io_1_1_file_writer.html", "classmlx_1_1core_1_1io_1_1_file_writer" ],
|
||||
[ "ParallelFileReader", "classmlx_1_1core_1_1io_1_1_parallel_file_reader.html", "classmlx_1_1core_1_1io_1_1_parallel_file_reader" ],
|
||||
[ "Reader", "classmlx_1_1core_1_1io_1_1_reader.html", "classmlx_1_1core_1_1io_1_1_reader" ],
|
||||
[ "Writer", "classmlx_1_1core_1_1io_1_1_writer.html", "classmlx_1_1core_1_1io_1_1_writer" ]
|
||||
] ],
|
||||
[ "metal", "namespacemlx_1_1core_1_1metal.html", [
|
||||
[ "Buffer", "classmlx_1_1core_1_1metal_1_1_buffer.html", "classmlx_1_1core_1_1metal_1_1_buffer" ],
|
||||
[ "CommandEncoder", "structmlx_1_1core_1_1metal_1_1_command_encoder.html", "structmlx_1_1core_1_1metal_1_1_command_encoder" ],
|
||||
[ "Device", "classmlx_1_1core_1_1metal_1_1_device.html", "classmlx_1_1core_1_1metal_1_1_device" ],
|
||||
[ "DeviceStream", "structmlx_1_1core_1_1metal_1_1_device_stream.html", "structmlx_1_1core_1_1metal_1_1_device_stream" ],
|
||||
[ "Fence", "structmlx_1_1core_1_1metal_1_1_fence.html", "structmlx_1_1core_1_1metal_1_1_fence" ],
|
||||
[ "MetalAllocator", "classmlx_1_1core_1_1metal_1_1_metal_allocator.html", "classmlx_1_1core_1_1metal_1_1_metal_allocator" ],
|
||||
[ "ResidencySet", "classmlx_1_1core_1_1metal_1_1_residency_set.html", "classmlx_1_1core_1_1metal_1_1_residency_set" ]
|
||||
] ],
|
||||
[ "random", "namespacemlx_1_1core_1_1random.html", [
|
||||
[ "KeySequence", "classmlx_1_1core_1_1random_1_1_key_sequence.html", "classmlx_1_1core_1_1random_1_1_key_sequence" ]
|
||||
] ],
|
||||
[ "scheduler", "namespacemlx_1_1core_1_1scheduler.html", [
|
||||
[ "Scheduler", "classmlx_1_1core_1_1scheduler_1_1_scheduler.html", "classmlx_1_1core_1_1scheduler_1_1_scheduler" ],
|
||||
[ "StreamThread", "structmlx_1_1core_1_1scheduler_1_1_stream_thread.html", "structmlx_1_1core_1_1scheduler_1_1_stream_thread" ]
|
||||
] ],
|
||||
[ "_MLX_BFloat16", "structmlx_1_1core_1_1___m_l_x___b_float16.html", "structmlx_1_1core_1_1___m_l_x___b_float16" ],
|
||||
[ "_MLX_Float16", "structmlx_1_1core_1_1___m_l_x___float16.html", "structmlx_1_1core_1_1___m_l_x___float16" ],
|
||||
[ "Abs", "classmlx_1_1core_1_1_abs.html", "classmlx_1_1core_1_1_abs" ],
|
||||
[ "Add", "classmlx_1_1core_1_1_add.html", "classmlx_1_1core_1_1_add" ],
|
||||
[ "AddMM", "classmlx_1_1core_1_1_add_m_m.html", "classmlx_1_1core_1_1_add_m_m" ],
|
||||
[ "Arange", "classmlx_1_1core_1_1_arange.html", "classmlx_1_1core_1_1_arange" ],
|
||||
[ "ArcCos", "classmlx_1_1core_1_1_arc_cos.html", "classmlx_1_1core_1_1_arc_cos" ],
|
||||
[ "ArcCosh", "classmlx_1_1core_1_1_arc_cosh.html", "classmlx_1_1core_1_1_arc_cosh" ],
|
||||
[ "ArcSin", "classmlx_1_1core_1_1_arc_sin.html", "classmlx_1_1core_1_1_arc_sin" ],
|
||||
[ "ArcSinh", "classmlx_1_1core_1_1_arc_sinh.html", "classmlx_1_1core_1_1_arc_sinh" ],
|
||||
[ "ArcTan", "classmlx_1_1core_1_1_arc_tan.html", "classmlx_1_1core_1_1_arc_tan" ],
|
||||
[ "ArcTan2", "classmlx_1_1core_1_1_arc_tan2.html", "classmlx_1_1core_1_1_arc_tan2" ],
|
||||
[ "ArcTanh", "classmlx_1_1core_1_1_arc_tanh.html", "classmlx_1_1core_1_1_arc_tanh" ],
|
||||
[ "ArgPartition", "classmlx_1_1core_1_1_arg_partition.html", "classmlx_1_1core_1_1_arg_partition" ],
|
||||
[ "ArgReduce", "classmlx_1_1core_1_1_arg_reduce.html", "classmlx_1_1core_1_1_arg_reduce" ],
|
||||
[ "ArgSort", "classmlx_1_1core_1_1_arg_sort.html", "classmlx_1_1core_1_1_arg_sort" ],
|
||||
[ "array", "classmlx_1_1core_1_1array.html", "classmlx_1_1core_1_1array" ],
|
||||
[ "AsStrided", "classmlx_1_1core_1_1_as_strided.html", "classmlx_1_1core_1_1_as_strided" ],
|
||||
[ "AsType", "classmlx_1_1core_1_1_as_type.html", "classmlx_1_1core_1_1_as_type" ],
|
||||
[ "BitwiseBinary", "classmlx_1_1core_1_1_bitwise_binary.html", "classmlx_1_1core_1_1_bitwise_binary" ],
|
||||
[ "BlockMaskedMM", "classmlx_1_1core_1_1_block_masked_m_m.html", "classmlx_1_1core_1_1_block_masked_m_m" ],
|
||||
[ "Broadcast", "classmlx_1_1core_1_1_broadcast.html", "classmlx_1_1core_1_1_broadcast" ],
|
||||
[ "BroadcastAxes", "classmlx_1_1core_1_1_broadcast_axes.html", "classmlx_1_1core_1_1_broadcast_axes" ],
|
||||
[ "Ceil", "classmlx_1_1core_1_1_ceil.html", "classmlx_1_1core_1_1_ceil" ],
|
||||
[ "Cholesky", "classmlx_1_1core_1_1_cholesky.html", "classmlx_1_1core_1_1_cholesky" ],
|
||||
[ "CommandEncoder", "structmlx_1_1core_1_1_command_encoder.html", "structmlx_1_1core_1_1_command_encoder" ],
|
||||
[ "Compiled", "classmlx_1_1core_1_1_compiled.html", "classmlx_1_1core_1_1_compiled" ],
|
||||
[ "complex128_t", "structmlx_1_1core_1_1complex128__t.html", "structmlx_1_1core_1_1complex128__t" ],
|
||||
[ "complex64_t", "structmlx_1_1core_1_1complex64__t.html", "structmlx_1_1core_1_1complex64__t" ],
|
||||
[ "Concatenate", "classmlx_1_1core_1_1_concatenate.html", "classmlx_1_1core_1_1_concatenate" ],
|
||||
[ "Conjugate", "classmlx_1_1core_1_1_conjugate.html", "classmlx_1_1core_1_1_conjugate" ],
|
||||
[ "Contiguous", "classmlx_1_1core_1_1_contiguous.html", "classmlx_1_1core_1_1_contiguous" ],
|
||||
[ "ContiguousIterator", "structmlx_1_1core_1_1_contiguous_iterator.html", "structmlx_1_1core_1_1_contiguous_iterator" ],
|
||||
[ "Convolution", "classmlx_1_1core_1_1_convolution.html", "classmlx_1_1core_1_1_convolution" ],
|
||||
[ "Copy", "classmlx_1_1core_1_1_copy.html", "classmlx_1_1core_1_1_copy" ],
|
||||
[ "Cos", "classmlx_1_1core_1_1_cos.html", "classmlx_1_1core_1_1_cos" ],
|
||||
[ "Cosh", "classmlx_1_1core_1_1_cosh.html", "classmlx_1_1core_1_1_cosh" ],
|
||||
[ "CustomTransforms", "classmlx_1_1core_1_1_custom_transforms.html", "classmlx_1_1core_1_1_custom_transforms" ],
|
||||
[ "DefaultContiguousReduce", "structmlx_1_1core_1_1_default_contiguous_reduce.html", "structmlx_1_1core_1_1_default_contiguous_reduce" ],
|
||||
[ "DefaultStridedReduce", "structmlx_1_1core_1_1_default_strided_reduce.html", "structmlx_1_1core_1_1_default_strided_reduce" ],
|
||||
[ "Depends", "classmlx_1_1core_1_1_depends.html", "classmlx_1_1core_1_1_depends" ],
|
||||
[ "Device", "structmlx_1_1core_1_1_device.html", "structmlx_1_1core_1_1_device" ],
|
||||
[ "Divide", "classmlx_1_1core_1_1_divide.html", "classmlx_1_1core_1_1_divide" ],
|
||||
[ "DivMod", "classmlx_1_1core_1_1_div_mod.html", "classmlx_1_1core_1_1_div_mod" ],
|
||||
[ "Dtype", "structmlx_1_1core_1_1_dtype.html", "structmlx_1_1core_1_1_dtype" ],
|
||||
[ "DynamicSlice", "classmlx_1_1core_1_1_dynamic_slice.html", "classmlx_1_1core_1_1_dynamic_slice" ],
|
||||
[ "DynamicSliceUpdate", "classmlx_1_1core_1_1_dynamic_slice_update.html", "classmlx_1_1core_1_1_dynamic_slice_update" ],
|
||||
[ "Eigh", "classmlx_1_1core_1_1_eigh.html", "classmlx_1_1core_1_1_eigh" ],
|
||||
[ "Equal", "classmlx_1_1core_1_1_equal.html", "classmlx_1_1core_1_1_equal" ],
|
||||
[ "Erf", "classmlx_1_1core_1_1_erf.html", "classmlx_1_1core_1_1_erf" ],
|
||||
[ "ErfInv", "classmlx_1_1core_1_1_erf_inv.html", "classmlx_1_1core_1_1_erf_inv" ],
|
||||
[ "Event", "classmlx_1_1core_1_1_event.html", "classmlx_1_1core_1_1_event" ],
|
||||
[ "Exp", "classmlx_1_1core_1_1_exp.html", "classmlx_1_1core_1_1_exp" ],
|
||||
[ "ExpandDims", "classmlx_1_1core_1_1_expand_dims.html", "classmlx_1_1core_1_1_expand_dims" ],
|
||||
[ "Expm1", "classmlx_1_1core_1_1_expm1.html", "classmlx_1_1core_1_1_expm1" ],
|
||||
[ "FFT", "classmlx_1_1core_1_1_f_f_t.html", "classmlx_1_1core_1_1_f_f_t" ],
|
||||
[ "finfo", "structmlx_1_1core_1_1finfo.html", "structmlx_1_1core_1_1finfo" ],
|
||||
[ "Flatten", "classmlx_1_1core_1_1_flatten.html", "classmlx_1_1core_1_1_flatten" ],
|
||||
[ "Floor", "classmlx_1_1core_1_1_floor.html", "classmlx_1_1core_1_1_floor" ],
|
||||
[ "Full", "classmlx_1_1core_1_1_full.html", "classmlx_1_1core_1_1_full" ],
|
||||
[ "FunctionExporter", "structmlx_1_1core_1_1_function_exporter.html", "structmlx_1_1core_1_1_function_exporter" ],
|
||||
[ "Gather", "classmlx_1_1core_1_1_gather.html", "classmlx_1_1core_1_1_gather" ],
|
||||
[ "GatherMM", "classmlx_1_1core_1_1_gather_m_m.html", "classmlx_1_1core_1_1_gather_m_m" ],
|
||||
[ "GatherQMM", "classmlx_1_1core_1_1_gather_q_m_m.html", "classmlx_1_1core_1_1_gather_q_m_m" ],
|
||||
[ "Greater", "classmlx_1_1core_1_1_greater.html", "classmlx_1_1core_1_1_greater" ],
|
||||
[ "GreaterEqual", "classmlx_1_1core_1_1_greater_equal.html", "classmlx_1_1core_1_1_greater_equal" ],
|
||||
[ "Hadamard", "classmlx_1_1core_1_1_hadamard.html", "classmlx_1_1core_1_1_hadamard" ],
|
||||
[ "Imag", "classmlx_1_1core_1_1_imag.html", "classmlx_1_1core_1_1_imag" ],
|
||||
[ "ImportedFunction", "structmlx_1_1core_1_1_imported_function.html", "structmlx_1_1core_1_1_imported_function" ],
|
||||
[ "Inverse", "classmlx_1_1core_1_1_inverse.html", "classmlx_1_1core_1_1_inverse" ],
|
||||
[ "JitCompiler", "classmlx_1_1core_1_1_jit_compiler.html", "classmlx_1_1core_1_1_jit_compiler" ],
|
||||
[ "Less", "classmlx_1_1core_1_1_less.html", "classmlx_1_1core_1_1_less" ],
|
||||
[ "LessEqual", "classmlx_1_1core_1_1_less_equal.html", "classmlx_1_1core_1_1_less_equal" ],
|
||||
[ "Load", "classmlx_1_1core_1_1_load.html", "classmlx_1_1core_1_1_load" ],
|
||||
[ "Log", "classmlx_1_1core_1_1_log.html", "classmlx_1_1core_1_1_log" ],
|
||||
[ "Log1p", "classmlx_1_1core_1_1_log1p.html", "classmlx_1_1core_1_1_log1p" ],
|
||||
[ "LogAddExp", "classmlx_1_1core_1_1_log_add_exp.html", "classmlx_1_1core_1_1_log_add_exp" ],
|
||||
[ "LogicalAnd", "classmlx_1_1core_1_1_logical_and.html", "classmlx_1_1core_1_1_logical_and" ],
|
||||
[ "LogicalNot", "classmlx_1_1core_1_1_logical_not.html", "classmlx_1_1core_1_1_logical_not" ],
|
||||
[ "LogicalOr", "classmlx_1_1core_1_1_logical_or.html", "classmlx_1_1core_1_1_logical_or" ],
|
||||
[ "Matmul", "classmlx_1_1core_1_1_matmul.html", "classmlx_1_1core_1_1_matmul" ],
|
||||
[ "Maximum", "classmlx_1_1core_1_1_maximum.html", "classmlx_1_1core_1_1_maximum" ],
|
||||
[ "Minimum", "classmlx_1_1core_1_1_minimum.html", "classmlx_1_1core_1_1_minimum" ],
|
||||
[ "Multiply", "classmlx_1_1core_1_1_multiply.html", "classmlx_1_1core_1_1_multiply" ],
|
||||
[ "Negative", "classmlx_1_1core_1_1_negative.html", "classmlx_1_1core_1_1_negative" ],
|
||||
[ "NodeNamer", "structmlx_1_1core_1_1_node_namer.html", "structmlx_1_1core_1_1_node_namer" ],
|
||||
[ "NotEqual", "classmlx_1_1core_1_1_not_equal.html", "classmlx_1_1core_1_1_not_equal" ],
|
||||
[ "NumberOfElements", "classmlx_1_1core_1_1_number_of_elements.html", "classmlx_1_1core_1_1_number_of_elements" ],
|
||||
[ "numeric_limits", "structmlx_1_1core_1_1numeric__limits.html", null ],
|
||||
[ "numeric_limits< bfloat16_t >", "structmlx_1_1core_1_1numeric__limits.html", "structmlx_1_1core_1_1numeric__limits" ],
|
||||
[ "numeric_limits< float >", "structmlx_1_1core_1_1numeric__limits.html", null ],
|
||||
[ "numeric_limits< float16_t >", "structmlx_1_1core_1_1numeric__limits.html", "structmlx_1_1core_1_1numeric__limits" ],
|
||||
[ "Pad", "classmlx_1_1core_1_1_pad.html", "classmlx_1_1core_1_1_pad" ],
|
||||
[ "Partition", "classmlx_1_1core_1_1_partition.html", "classmlx_1_1core_1_1_partition" ],
|
||||
[ "Power", "classmlx_1_1core_1_1_power.html", "classmlx_1_1core_1_1_power" ],
|
||||
[ "Primitive", "classmlx_1_1core_1_1_primitive.html", "classmlx_1_1core_1_1_primitive" ],
|
||||
[ "PrintFormatter", "structmlx_1_1core_1_1_print_formatter.html", "structmlx_1_1core_1_1_print_formatter" ],
|
||||
[ "QRF", "classmlx_1_1core_1_1_q_r_f.html", "classmlx_1_1core_1_1_q_r_f" ],
|
||||
[ "QuantizedMatmul", "classmlx_1_1core_1_1_quantized_matmul.html", "classmlx_1_1core_1_1_quantized_matmul" ],
|
||||
[ "RandomBits", "classmlx_1_1core_1_1_random_bits.html", "classmlx_1_1core_1_1_random_bits" ],
|
||||
[ "Real", "classmlx_1_1core_1_1_real.html", "classmlx_1_1core_1_1_real" ],
|
||||
[ "Reduce", "classmlx_1_1core_1_1_reduce.html", "classmlx_1_1core_1_1_reduce" ],
|
||||
[ "ReductionPlan", "structmlx_1_1core_1_1_reduction_plan.html", "structmlx_1_1core_1_1_reduction_plan" ],
|
||||
[ "Remainder", "classmlx_1_1core_1_1_remainder.html", "classmlx_1_1core_1_1_remainder" ],
|
||||
[ "Reshape", "classmlx_1_1core_1_1_reshape.html", "classmlx_1_1core_1_1_reshape" ],
|
||||
[ "Round", "classmlx_1_1core_1_1_round.html", "classmlx_1_1core_1_1_round" ],
|
||||
[ "Scan", "classmlx_1_1core_1_1_scan.html", "classmlx_1_1core_1_1_scan" ],
|
||||
[ "Scatter", "classmlx_1_1core_1_1_scatter.html", "classmlx_1_1core_1_1_scatter" ],
|
||||
[ "Select", "classmlx_1_1core_1_1_select.html", "classmlx_1_1core_1_1_select" ],
|
||||
[ "Sigmoid", "classmlx_1_1core_1_1_sigmoid.html", "classmlx_1_1core_1_1_sigmoid" ],
|
||||
[ "Sign", "classmlx_1_1core_1_1_sign.html", "classmlx_1_1core_1_1_sign" ],
|
||||
[ "Sin", "classmlx_1_1core_1_1_sin.html", "classmlx_1_1core_1_1_sin" ],
|
||||
[ "Sinh", "classmlx_1_1core_1_1_sinh.html", "classmlx_1_1core_1_1_sinh" ],
|
||||
[ "Slice", "classmlx_1_1core_1_1_slice.html", "classmlx_1_1core_1_1_slice" ],
|
||||
[ "SliceUpdate", "classmlx_1_1core_1_1_slice_update.html", "classmlx_1_1core_1_1_slice_update" ],
|
||||
[ "Softmax", "classmlx_1_1core_1_1_softmax.html", "classmlx_1_1core_1_1_softmax" ],
|
||||
[ "Sort", "classmlx_1_1core_1_1_sort.html", "classmlx_1_1core_1_1_sort" ],
|
||||
[ "Split", "classmlx_1_1core_1_1_split.html", "classmlx_1_1core_1_1_split" ],
|
||||
[ "Sqrt", "classmlx_1_1core_1_1_sqrt.html", "classmlx_1_1core_1_1_sqrt" ],
|
||||
[ "Square", "classmlx_1_1core_1_1_square.html", "classmlx_1_1core_1_1_square" ],
|
||||
[ "Squeeze", "classmlx_1_1core_1_1_squeeze.html", "classmlx_1_1core_1_1_squeeze" ],
|
||||
[ "StopGradient", "classmlx_1_1core_1_1_stop_gradient.html", "classmlx_1_1core_1_1_stop_gradient" ],
|
||||
[ "Stream", "structmlx_1_1core_1_1_stream.html", "structmlx_1_1core_1_1_stream" ],
|
||||
[ "StreamContext", "structmlx_1_1core_1_1_stream_context.html", "structmlx_1_1core_1_1_stream_context" ],
|
||||
[ "Subtract", "classmlx_1_1core_1_1_subtract.html", "classmlx_1_1core_1_1_subtract" ],
|
||||
[ "SVD", "classmlx_1_1core_1_1_s_v_d.html", "classmlx_1_1core_1_1_s_v_d" ],
|
||||
[ "Tan", "classmlx_1_1core_1_1_tan.html", "classmlx_1_1core_1_1_tan" ],
|
||||
[ "Tanh", "classmlx_1_1core_1_1_tanh.html", "classmlx_1_1core_1_1_tanh" ],
|
||||
[ "Transpose", "classmlx_1_1core_1_1_transpose.html", "classmlx_1_1core_1_1_transpose" ],
|
||||
[ "TypeToDtype", "structmlx_1_1core_1_1_type_to_dtype.html", "structmlx_1_1core_1_1_type_to_dtype" ],
|
||||
[ "UnaryPrimitive", "classmlx_1_1core_1_1_unary_primitive.html", "classmlx_1_1core_1_1_unary_primitive" ],
|
||||
[ "Unflatten", "classmlx_1_1core_1_1_unflatten.html", "classmlx_1_1core_1_1_unflatten" ],
|
||||
[ "View", "classmlx_1_1core_1_1_view.html", "classmlx_1_1core_1_1_view" ]
|
||||
] ],
|
||||
[ "steel", "namespacemlx_1_1steel.html", [
|
||||
[ "AccumHelper", "structmlx_1_1steel_1_1_accum_helper.html", "structmlx_1_1steel_1_1_accum_helper" ],
|
||||
[ "AttnParams", "structmlx_1_1steel_1_1_attn_params.html", "structmlx_1_1steel_1_1_attn_params" ],
|
||||
[ "BaseMMAFrag", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", null ],
|
||||
[ "BaseMMAFrag< T, 8, 8 >", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", "structmlx_1_1steel_1_1_base_m_m_a_frag" ],
|
||||
[ "BlockLoader", "structmlx_1_1steel_1_1_block_loader.html", "structmlx_1_1steel_1_1_block_loader" ],
|
||||
[ "BlockLoaderT", "structmlx_1_1steel_1_1_block_loader_t.html", "structmlx_1_1steel_1_1_block_loader_t" ],
|
||||
[ "BlockMMA", "structmlx_1_1steel_1_1_block_m_m_a.html", "structmlx_1_1steel_1_1_block_m_m_a" ],
|
||||
[ "BlockSwizzle", "structmlx_1_1steel_1_1_block_swizzle.html", "structmlx_1_1steel_1_1_block_swizzle" ],
|
||||
[ "ChannelHelper", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
|
||||
[ "ChannelHelper< 1 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
|
||||
[ "ChannelHelper< 2 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
|
||||
[ "ChannelHelper< 3 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
|
||||
[ "ChannelHelper< 4 >", "structmlx_1_1steel_1_1_channel_helper.html", "structmlx_1_1steel_1_1_channel_helper" ],
|
||||
[ "Conv2DGeneralBaseInfo", "structmlx_1_1steel_1_1_conv2_d_general_base_info.html", "structmlx_1_1steel_1_1_conv2_d_general_base_info" ],
|
||||
[ "Conv2DGeneralJumpParams", "structmlx_1_1steel_1_1_conv2_d_general_jump_params.html", "structmlx_1_1steel_1_1_conv2_d_general_jump_params" ],
|
||||
[ "Conv2DInputBlockLoaderGeneral", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_general" ],
|
||||
[ "Conv2DInputBlockLoaderLargeFilter", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter" ],
|
||||
[ "Conv2DInputBlockLoaderSmallChannels", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels" ],
|
||||
[ "Conv2DInputBlockLoaderSmallFilter", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html", "structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter" ],
|
||||
[ "Conv2DWeightBlockLoader", "structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html", "structmlx_1_1steel_1_1_conv2_d_weight_block_loader" ],
|
||||
[ "Conv2DWeightBlockLoaderGeneral", "structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html", "structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general" ],
|
||||
[ "Conv2DWeightBlockLoaderSmallChannels", "structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html", "structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels" ],
|
||||
[ "CShape", "structmlx_1_1steel_1_1_c_shape.html", "structmlx_1_1steel_1_1_c_shape" ],
|
||||
[ "GEMMAddMMParams", "structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html", "structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params" ],
|
||||
[ "GEMMKernel", "structmlx_1_1steel_1_1_g_e_m_m_kernel.html", "structmlx_1_1steel_1_1_g_e_m_m_kernel" ],
|
||||
[ "GEMMParams", "structmlx_1_1steel_1_1_g_e_m_m_params.html", "structmlx_1_1steel_1_1_g_e_m_m_params" ],
|
||||
[ "GEMMSpiltKParams", "structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html", "structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params" ],
|
||||
[ "ImplicitGemmConv2DParams", "structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html", "structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params" ],
|
||||
[ "integral_constant", "structmlx_1_1steel_1_1integral__constant.html", "structmlx_1_1steel_1_1integral__constant" ],
|
||||
[ "is_integral", "structmlx_1_1steel_1_1is__integral.html", null ],
|
||||
[ "is_integral< integral_constant< T, v > >", "structmlx_1_1steel_1_1is__integral.html", null ],
|
||||
[ "Layout2D", "structmlx_1_1steel_1_1_layout2_d.html", "structmlx_1_1steel_1_1_layout2_d" ],
|
||||
[ "LoopAlignment", "structmlx_1_1steel_1_1_loop_alignment.html", null ],
|
||||
[ "MMATile", "structmlx_1_1steel_1_1_m_m_a_tile.html", "structmlx_1_1steel_1_1_m_m_a_tile" ],
|
||||
[ "Shape2D", "structmlx_1_1steel_1_1_shape2_d.html", "structmlx_1_1steel_1_1_shape2_d" ],
|
||||
[ "TransformAdd", "structmlx_1_1steel_1_1_transform_add.html", "structmlx_1_1steel_1_1_transform_add" ],
|
||||
[ "TransformAxpby", "structmlx_1_1steel_1_1_transform_axpby.html", "structmlx_1_1steel_1_1_transform_axpby" ],
|
||||
[ "TransformNone", "structmlx_1_1steel_1_1_transform_none.html", "structmlx_1_1steel_1_1_transform_none" ]
|
||||
] ]
|
||||
] ],
|
||||
[ "pocketfft", "namespacepocketfft.html", [
|
||||
[ "detail", "namespacepocketfft_1_1detail.html", [
|
||||
[ "threading", "namespacepocketfft_1_1detail_1_1threading.html", [
|
||||
[ "aligned_allocator", "structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html", "structpocketfft_1_1detail_1_1threading_1_1aligned__allocator" ],
|
||||
[ "concurrent_queue", "classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html", "classpocketfft_1_1detail_1_1threading_1_1concurrent__queue" ],
|
||||
[ "latch", "classpocketfft_1_1detail_1_1threading_1_1latch.html", "classpocketfft_1_1detail_1_1threading_1_1latch" ],
|
||||
[ "thread_pool", "classpocketfft_1_1detail_1_1threading_1_1thread__pool.html", "classpocketfft_1_1detail_1_1threading_1_1thread__pool" ]
|
||||
] ],
|
||||
[ "add_vec", "structpocketfft_1_1detail_1_1add__vec.html", "structpocketfft_1_1detail_1_1add__vec" ],
|
||||
[ "add_vec< cmplx< T > >", "structpocketfft_1_1detail_1_1add__vec.html", "structpocketfft_1_1detail_1_1add__vec" ],
|
||||
[ "arr", "classpocketfft_1_1detail_1_1arr.html", "classpocketfft_1_1detail_1_1arr" ],
|
||||
[ "arr_info", "classpocketfft_1_1detail_1_1arr__info.html", "classpocketfft_1_1detail_1_1arr__info" ],
|
||||
[ "cfftp", "classpocketfft_1_1detail_1_1cfftp.html", "classpocketfft_1_1detail_1_1cfftp" ],
|
||||
[ "cmplx", "structpocketfft_1_1detail_1_1cmplx.html", "structpocketfft_1_1detail_1_1cmplx" ],
|
||||
[ "cndarr", "classpocketfft_1_1detail_1_1cndarr.html", "classpocketfft_1_1detail_1_1cndarr" ],
|
||||
[ "ExecC2C", "structpocketfft_1_1detail_1_1_exec_c2_c.html", "structpocketfft_1_1detail_1_1_exec_c2_c" ],
|
||||
[ "ExecDcst", "structpocketfft_1_1detail_1_1_exec_dcst.html", "structpocketfft_1_1detail_1_1_exec_dcst" ],
|
||||
[ "ExecHartley", "structpocketfft_1_1detail_1_1_exec_hartley.html", "structpocketfft_1_1detail_1_1_exec_hartley" ],
|
||||
[ "ExecR2R", "structpocketfft_1_1detail_1_1_exec_r2_r.html", "structpocketfft_1_1detail_1_1_exec_r2_r" ],
|
||||
[ "fftblue", "classpocketfft_1_1detail_1_1fftblue.html", "classpocketfft_1_1detail_1_1fftblue" ],
|
||||
[ "multi_iter", "classpocketfft_1_1detail_1_1multi__iter.html", "classpocketfft_1_1detail_1_1multi__iter" ],
|
||||
[ "ndarr", "classpocketfft_1_1detail_1_1ndarr.html", "classpocketfft_1_1detail_1_1ndarr" ],
|
||||
[ "pocketfft_c", "classpocketfft_1_1detail_1_1pocketfft__c.html", "classpocketfft_1_1detail_1_1pocketfft__c" ],
|
||||
[ "pocketfft_r", "classpocketfft_1_1detail_1_1pocketfft__r.html", "classpocketfft_1_1detail_1_1pocketfft__r" ],
|
||||
[ "rev_iter", "classpocketfft_1_1detail_1_1rev__iter.html", "classpocketfft_1_1detail_1_1rev__iter" ],
|
||||
[ "rfftp", "classpocketfft_1_1detail_1_1rfftp.html", "classpocketfft_1_1detail_1_1rfftp" ],
|
||||
[ "simple_iter", "classpocketfft_1_1detail_1_1simple__iter.html", "classpocketfft_1_1detail_1_1simple__iter" ],
|
||||
[ "sincos_2pibyn", "classpocketfft_1_1detail_1_1sincos__2pibyn.html", "classpocketfft_1_1detail_1_1sincos__2pibyn" ],
|
||||
[ "T_dcst23", "classpocketfft_1_1detail_1_1_t__dcst23.html", "classpocketfft_1_1detail_1_1_t__dcst23" ],
|
||||
[ "T_dcst4", "classpocketfft_1_1detail_1_1_t__dcst4.html", "classpocketfft_1_1detail_1_1_t__dcst4" ],
|
||||
[ "T_dct1", "classpocketfft_1_1detail_1_1_t__dct1.html", "classpocketfft_1_1detail_1_1_t__dct1" ],
|
||||
[ "T_dst1", "classpocketfft_1_1detail_1_1_t__dst1.html", "classpocketfft_1_1detail_1_1_t__dst1" ],
|
||||
[ "util", "structpocketfft_1_1detail_1_1util.html", "structpocketfft_1_1detail_1_1util" ],
|
||||
[ "VLEN", "structpocketfft_1_1detail_1_1_v_l_e_n.html", "structpocketfft_1_1detail_1_1_v_l_e_n" ],
|
||||
[ "VTYPE", "structpocketfft_1_1detail_1_1_v_t_y_p_e.html", null ]
|
||||
] ]
|
||||
] ],
|
||||
[ "_MLX_BFloat16", "struct___m_l_x___b_float16.html", "struct___m_l_x___b_float16" ],
|
||||
[ "_NoMask", "struct___no_mask.html", "struct___no_mask" ],
|
||||
[ "Abs", "struct_abs.html", "struct_abs" ],
|
||||
[ "Add", "struct_add.html", "struct_add" ],
|
||||
[ "And", "struct_and.html", null ],
|
||||
[ "ArcCos", "struct_arc_cos.html", "struct_arc_cos" ],
|
||||
[ "ArcCosh", "struct_arc_cosh.html", "struct_arc_cosh" ],
|
||||
[ "ArcSin", "struct_arc_sin.html", "struct_arc_sin" ],
|
||||
[ "ArcSinh", "struct_arc_sinh.html", "struct_arc_sinh" ],
|
||||
[ "ArcTan", "struct_arc_tan.html", "struct_arc_tan" ],
|
||||
[ "ArcTan2", "struct_arc_tan2.html", "struct_arc_tan2" ],
|
||||
[ "ArcTanh", "struct_arc_tanh.html", "struct_arc_tanh" ],
|
||||
[ "BitwiseAnd", "struct_bitwise_and.html", "struct_bitwise_and" ],
|
||||
[ "BitwiseOr", "struct_bitwise_or.html", "struct_bitwise_or" ],
|
||||
[ "BitwiseXor", "struct_bitwise_xor.html", "struct_bitwise_xor" ],
|
||||
[ "BlockMergeSort", "struct_block_merge_sort.html", "struct_block_merge_sort" ],
|
||||
[ "bool4_or_uint", "unionbool4__or__uint.html", "unionbool4__or__uint" ],
|
||||
[ "Ceil", "struct_ceil.html", "struct_ceil" ],
|
||||
[ "complex64_t", "structcomplex64__t.html", "structcomplex64__t" ],
|
||||
[ "ConditionalType", "struct_conditional_type.html", "struct_conditional_type" ],
|
||||
[ "ConditionalType< true, T, U >", "struct_conditional_type.html", "struct_conditional_type" ],
|
||||
[ "Conjugate", "struct_conjugate.html", "struct_conjugate" ],
|
||||
[ "Cos", "struct_cos.html", "struct_cos" ],
|
||||
[ "Cosh", "struct_cosh.html", "struct_cosh" ],
|
||||
[ "CumMax", "struct_cum_max.html", "struct_cum_max" ],
|
||||
[ "CumMin", "struct_cum_min.html", "struct_cum_min" ],
|
||||
[ "CumProd", "struct_cum_prod.html", null ],
|
||||
[ "CumProd< bool >", "struct_cum_prod.html", "struct_cum_prod" ],
|
||||
[ "CumSum", "struct_cum_sum.html", null ],
|
||||
[ "Divide", "struct_divide.html", "struct_divide" ],
|
||||
[ "DivMod", "struct_div_mod.html", "struct_div_mod" ],
|
||||
[ "DivOp", "struct_div_op.html", "struct_div_op" ],
|
||||
[ "Equal", "struct_equal.html", "struct_equal" ],
|
||||
[ "Erf", "struct_erf.html", "struct_erf" ],
|
||||
[ "ErfInv", "struct_erf_inv.html", "struct_erf_inv" ],
|
||||
[ "Exp", "struct_exp.html", "struct_exp" ],
|
||||
[ "Expm1", "struct_expm1.html", "struct_expm1" ],
|
||||
[ "ExpSubOp", "struct_exp_sub_op.html", "struct_exp_sub_op" ],
|
||||
[ "Floor", "struct_floor.html", "struct_floor" ],
|
||||
[ "FloorDivide", "struct_floor_divide.html", "struct_floor_divide" ],
|
||||
[ "GEMVKernel", "struct_g_e_m_v_kernel.html", "struct_g_e_m_v_kernel" ],
|
||||
[ "GEMVTKernel", "struct_g_e_m_v_t_kernel.html", "struct_g_e_m_v_t_kernel" ],
|
||||
[ "Greater", "struct_greater.html", "struct_greater" ],
|
||||
[ "GreaterEqual", "struct_greater_equal.html", "struct_greater_equal" ],
|
||||
[ "Imag", "struct_imag.html", "struct_imag" ],
|
||||
[ "Indices", "struct_indices.html", "struct_indices" ],
|
||||
[ "KernelMergeSort", "struct_kernel_merge_sort.html", "struct_kernel_merge_sort" ],
|
||||
[ "KernelMultiBlockMergeSort", "struct_kernel_multi_block_merge_sort.html", "struct_kernel_multi_block_merge_sort" ],
|
||||
[ "LeftShift", "struct_left_shift.html", "struct_left_shift" ],
|
||||
[ "Less", "struct_less.html", "struct_less" ],
|
||||
[ "LessEqual", "struct_less_equal.html", "struct_less_equal" ],
|
||||
[ "LessThan", "struct_less_than.html", "struct_less_than" ],
|
||||
[ "Limits", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< bfloat16_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< bool >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< complex64_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< float >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< half >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int16_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int32_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int64_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int8_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint16_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint32_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint64_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint8_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Log", "struct_log.html", "struct_log" ],
|
||||
[ "Log10", "struct_log10.html", "struct_log10" ],
|
||||
[ "Log1p", "struct_log1p.html", "struct_log1p" ],
|
||||
[ "Log2", "struct_log2.html", "struct_log2" ],
|
||||
[ "LogAddExp", "struct_log_add_exp.html", "struct_log_add_exp" ],
|
||||
[ "LogicalAnd", "struct_logical_and.html", "struct_logical_and" ],
|
||||
[ "LogicalNot", "struct_logical_not.html", "struct_logical_not" ],
|
||||
[ "LogicalOr", "struct_logical_or.html", "struct_logical_or" ],
|
||||
[ "LoopedElemToLoc", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
|
||||
[ "LoopedElemToLoc< 1, OffsetT, false >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
|
||||
[ "LoopedElemToLoc< 1, OffsetT, true >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
|
||||
[ "Max", "struct_max.html", "struct_max" ],
|
||||
[ "Maximum", "struct_maximum.html", "struct_maximum" ],
|
||||
[ "MaxOp", "struct_max_op.html", "struct_max_op" ],
|
||||
[ "Min", "struct_min.html", null ],
|
||||
[ "Minimum", "struct_minimum.html", "struct_minimum" ],
|
||||
[ "mlx_atomic", "structmlx__atomic.html", "structmlx__atomic" ],
|
||||
[ "mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >", "structmlx__atomic.html", "structmlx__atomic" ],
|
||||
[ "MLXConvParams", "struct_m_l_x_conv_params.html", "struct_m_l_x_conv_params" ],
|
||||
[ "MulOp", "struct_mul_op.html", "struct_mul_op" ],
|
||||
[ "Multiply", "struct_multiply.html", "struct_multiply" ],
|
||||
[ "NaNEqual", "struct_na_n_equal.html", "struct_na_n_equal" ],
|
||||
[ "Negative", "struct_negative.html", "struct_negative" ],
|
||||
[ "None", "struct_none.html", "struct_none" ],
|
||||
[ "NotEqual", "struct_not_equal.html", "struct_not_equal" ],
|
||||
[ "Or", "struct_or.html", null ],
|
||||
[ "Power", "struct_power.html", "struct_power" ],
|
||||
[ "Prod", "struct_prod.html", null ],
|
||||
[ "QuantizedBlockLoader", "struct_quantized_block_loader.html", "struct_quantized_block_loader" ],
|
||||
[ "ReadWriter", "struct_read_writer.html", "struct_read_writer" ],
|
||||
[ "Real", "struct_real.html", "struct_real" ],
|
||||
[ "Remainder", "struct_remainder.html", "struct_remainder" ],
|
||||
[ "RightShift", "struct_right_shift.html", "struct_right_shift" ],
|
||||
[ "Round", "struct_round.html", "struct_round" ],
|
||||
[ "Rsqrt", "struct_rsqrt.html", "struct_rsqrt" ],
|
||||
[ "ScaleOp", "struct_scale_op.html", "struct_scale_op" ],
|
||||
[ "Select", "struct_select.html", "struct_select" ],
|
||||
[ "Sigmoid", "struct_sigmoid.html", "struct_sigmoid" ],
|
||||
[ "Sign", "struct_sign.html", "struct_sign" ],
|
||||
[ "Sin", "struct_sin.html", "struct_sin" ],
|
||||
[ "Sinh", "struct_sinh.html", "struct_sinh" ],
|
||||
[ "Sqrt", "struct_sqrt.html", "struct_sqrt" ],
|
||||
[ "Square", "struct_square.html", "struct_square" ],
|
||||
[ "SubOp", "struct_sub_op.html", "struct_sub_op" ],
|
||||
[ "Subtract", "struct_subtract.html", "struct_subtract" ],
|
||||
[ "Sum", "struct_sum.html", null ],
|
||||
[ "SumOp", "struct_sum_op.html", "struct_sum_op" ],
|
||||
[ "Tan", "struct_tan.html", "struct_tan" ],
|
||||
[ "Tanh", "struct_tanh.html", "struct_tanh" ],
|
||||
[ "ThreadPool", "class_thread_pool.html", "class_thread_pool" ],
|
||||
[ "ThreadSort", "struct_thread_sort.html", "struct_thread_sort" ],
|
||||
[ "TransformScale", "struct_transform_scale.html", "struct_transform_scale" ]
|
||||
];
|
||||
Vendored
+48
-29
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/array.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('array_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -129,17 +143,19 @@ Namespaces</h2></td></tr>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:af834c1e18d6f11c4f233a2e1ce814a4b" id="r_af834c1e18d6f11c4f233a2e1ce814a4b"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b">mlx::core::Deleter</a> = std::function<void(<a class="el" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">allocator::Buffer</a>)></td></tr>
|
||||
<tr class="separator:af834c1e18d6f11c4f233a2e1ce814a4b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9be5b57d393e66169279cf521813af9b" id="r_a9be5b57d393e66169279cf521813af9b"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a9be5b57d393e66169279cf521813af9b">mlx::core::Shape</a> = std::vector<int32_t></td></tr>
|
||||
<tr class="separator:a9be5b57d393e66169279cf521813af9b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aca6e505f52ea1464d9c2c09f9f445d62" id="r_aca6e505f52ea1464d9c2c09f9f445d62"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aca6e505f52ea1464d9c2c09f9f445d62">mlx::core::Strides</a> = std::vector<size_t></td></tr>
|
||||
<tr class="separator:aca6e505f52ea1464d9c2c09f9f445d62"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a167cdec84c0ae62b5b299c617384346e" id="r_a167cdec84c0ae62b5b299c617384346e"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a167cdec84c0ae62b5b299c617384346e">mlx::core::ShapeElem</a> = int32_t</td></tr>
|
||||
<tr class="separator:a167cdec84c0ae62b5b299c617384346e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a694e23f2d59606643728ad443d621416" id="r_a694e23f2d59606643728ad443d621416"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a> = std::vector<<a class="el" href="namespacemlx_1_1core.html#a167cdec84c0ae62b5b299c617384346e">ShapeElem</a>></td></tr>
|
||||
<tr class="separator:a694e23f2d59606643728ad443d621416"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a79939016d0972ded7db37130da2a8b5c" id="r_a79939016d0972ded7db37130da2a8b5c"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">mlx::core::Strides</a> = std::vector<int64_t></td></tr>
|
||||
<tr class="separator:a79939016d0972ded7db37130da2a8b5c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af89751d79339f3e4d9318ea97d64d114" id="r_af89751d79339f3e4d9318ea97d64d114"><td class="memTemplParams" colspan="2">template<typename... T> </td></tr>
|
||||
<tr class="memitem:af89751d79339f3e4d9318ea97d64d114"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a> = typename std::enable_if_t<<a class="el" href="namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda">is_arrays_v</a><T...>></td></tr>
|
||||
<tr class="separator:af89751d79339f3e4d9318ea97d64d114"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:a01b0d64a75dfa2e95d6c7b5c53d708af" id="r_a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a01b0d64a75dfa2e95d6c7b5c53d708af" id="r_a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af">mlx::core::is_array_v</a></td></tr>
|
||||
<tr class="separator:a01b0d64a75dfa2e95d6c7b5c53d708af"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a94c1057929b390e5613304afa16dfbda" id="r_a94c1057929b390e5613304afa16dfbda"><td class="memTemplParams" colspan="2">template<typename... T> </td></tr>
|
||||
@@ -147,10 +163,13 @@ Variables</h2></td></tr>
|
||||
<tr class="separator:a94c1057929b390e5613304afa16dfbda"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="array_8h.html">array.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
var array_8h =
|
||||
[
|
||||
[ "mlx::core::array", "classmlx_1_1core_1_1array.html", "classmlx_1_1core_1_1array" ],
|
||||
[ "mlx::core::array::ArrayIterator", "structmlx_1_1core_1_1array_1_1_array_iterator.html", "structmlx_1_1core_1_1array_1_1_array_iterator" ],
|
||||
[ "mlx::core::array::Data", "structmlx_1_1core_1_1array_1_1_data.html", "structmlx_1_1core_1_1array_1_1_data" ],
|
||||
[ "mlx::core::array::Flags", "structmlx_1_1core_1_1array_1_1_flags.html", "structmlx_1_1core_1_1array_1_1_flags" ],
|
||||
[ "mlx::core::Deleter", "namespacemlx_1_1core.html#af834c1e18d6f11c4f233a2e1ce814a4b", null ],
|
||||
[ "mlx::core::enable_for_arrays_t", "namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114", null ],
|
||||
[ "mlx::core::Shape", "namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416", null ],
|
||||
[ "mlx::core::ShapeElem", "namespacemlx_1_1core.html#a167cdec84c0ae62b5b299c617384346e", null ],
|
||||
[ "mlx::core::Strides", "namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c", null ],
|
||||
[ "mlx::core::is_array_v", "namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af", null ],
|
||||
[ "mlx::core::is_arrays_v", "namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda", null ]
|
||||
];
|
||||
Vendored
+714
-694
File diff suppressed because it is too large
Load Diff
Vendored
+65
-48
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/atomic.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('atomic_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -104,36 +118,36 @@ $(function(){ initResizable(false); });
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic.html">mlx_atomic< T, typename ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html">mlx_atomic< T, enable_if_t< is_metal_atomic< T > > ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx__atomic.html">mlx_atomic< T, enable_if_t< is_metal_atomic< T > > ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a253a4e8c2c5768a069e2791b627dfc99" id="r_a253a4e8c2c5768a069e2791b627dfc99"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a253a4e8c2c5768a069e2791b627dfc99" id="r_a253a4e8c2c5768a069e2791b627dfc99"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a253a4e8c2c5768a069e2791b627dfc99"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a253a4e8c2c5768a069e2791b627dfc99">mlx_atomic_load_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, size_t offset)</td></tr>
|
||||
<tr class="separator:a253a4e8c2c5768a069e2791b627dfc99"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0ae453140b0819a4c02f265334de98c0" id="r_a0ae453140b0819a4c02f265334de98c0"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a0ae453140b0819a4c02f265334de98c0" id="r_a0ae453140b0819a4c02f265334de98c0"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a0ae453140b0819a4c02f265334de98c0"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a0ae453140b0819a4c02f265334de98c0">mlx_atomic_store_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:a0ae453140b0819a4c02f265334de98c0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a253e3c870c0ddc7c28ab2f6ca2c3eae5" id="r_a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a253e3c870c0ddc7c28ab2f6ca2c3eae5" id="r_a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a253e3c870c0ddc7c28ab2f6ca2c3eae5">mlx_atomic_fetch_and_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:a253e3c870c0ddc7c28ab2f6ca2c3eae5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab7391f197001471e4788312bdb6ab37a" id="r_ab7391f197001471e4788312bdb6ab37a"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:ab7391f197001471e4788312bdb6ab37a" id="r_ab7391f197001471e4788312bdb6ab37a"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:ab7391f197001471e4788312bdb6ab37a"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ab7391f197001471e4788312bdb6ab37a">mlx_atomic_fetch_or_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:ab7391f197001471e4788312bdb6ab37a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2ec33dca0039bd944d73d1c2b378cc19" id="r_a2ec33dca0039bd944d73d1c2b378cc19"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a2ec33dca0039bd944d73d1c2b378cc19" id="r_a2ec33dca0039bd944d73d1c2b378cc19"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:a2ec33dca0039bd944d73d1c2b378cc19"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a2ec33dca0039bd944d73d1c2b378cc19">mlx_atomic_fetch_min_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:a2ec33dca0039bd944d73d1c2b378cc19"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac480f2b459a8ad9095cee353e152d00c" id="r_ac480f2b459a8ad9095cee353e152d00c"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:ac480f2b459a8ad9095cee353e152d00c" id="r_ac480f2b459a8ad9095cee353e152d00c"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:ac480f2b459a8ad9095cee353e152d00c"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:ac480f2b459a8ad9095cee353e152d00c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aad448d9e06e001700b65ca8317216a3b" id="r_aad448d9e06e001700b65ca8317216a3b"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:aad448d9e06e001700b65ca8317216a3b" id="r_aad448d9e06e001700b65ca8317216a3b"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:aad448d9e06e001700b65ca8317216a3b"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aad448d9e06e001700b65ca8317216a3b">mlx_atomic_fetch_add_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:aad448d9e06e001700b65ca8317216a3b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:adfdbea60436f14f1af9ce36e2a0a77a3" id="r_adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:adfdbea60436f14f1af9ce36e2a0a77a3" id="r_adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#adfdbea60436f14f1af9ce36e2a0a77a3">mlx_atomic_fetch_mul_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:adfdbea60436f14f1af9ce36e2a0a77a3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad7f32327ff66354cfa2f0cfdac79316f" id="r_ad7f32327ff66354cfa2f0cfdac79316f"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:ad7f32327ff66354cfa2f0cfdac79316f" id="r_ad7f32327ff66354cfa2f0cfdac79316f"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:ad7f32327ff66354cfa2f0cfdac79316f"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, thread T *expected, T val, size_t offset)</td></tr>
|
||||
<tr class="separator:ad7f32327ff66354cfa2f0cfdac79316f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab7d1dc49f319f239b7ee0b7c72976dd0" id="r_ab7d1dc49f319f239b7ee0b7c72976dd0"><td class="memItemLeft" align="right" valign="top">template<> </td></tr>
|
||||
@@ -142,13 +156,13 @@ Functions</h2></td></tr>
|
||||
<tr class="memitem:a1dce2abfa16417122c4d2bf261129ae4" id="r_a1dce2abfa16417122c4d2bf261129ae4"><td class="memItemLeft" align="right" valign="top">template<> </td></tr>
|
||||
<tr class="memitem:a1dce2abfa16417122c4d2bf261129ae4"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1dce2abfa16417122c4d2bf261129ae4">mlx_atomic_fetch_max_explicit< float ></a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< float > *object, float val, size_t offset)</td></tr>
|
||||
<tr class="separator:a1dce2abfa16417122c4d2bf261129ae4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa8f47b2e9b95d4b00ad51f08b070deb5" id="r_aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memTemplParams" colspan="2">template<typename T , enable_if_t<!<a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:aa8f47b2e9b95d4b00ad51f08b070deb5" id="r_aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memTemplParams" colspan="2">template<typename T, enable_if_t<!<a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </td></tr>
|
||||
<tr class="memitem:aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aa8f47b2e9b95d4b00ad51f08b070deb5">mlx_atomic_compare_exchange_weak_explicit</a> (device <a class="el" href="structmlx__atomic.html">mlx_atomic</a>< T > *object, thread uint *expected, uint val, size_t offset)</td></tr>
|
||||
<tr class="separator:aa8f47b2e9b95d4b00ad51f08b070deb5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:a91a8bdcae647947a83c6689d7f252d24" id="r_a91a8bdcae647947a83c6689d7f252d24"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a91a8bdcae647947a83c6689d7f252d24" id="r_a91a8bdcae647947a83c6689d7f252d24"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a91a8bdcae647947a83c6689d7f252d24"><td class="memTemplItemLeft" align="right" valign="top">constexpr constant bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a></td></tr>
|
||||
<tr class="separator:a91a8bdcae647947a83c6689d7f252d24"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
@@ -159,7 +173,7 @@ Variables</h2></td></tr>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit </td>
|
||||
@@ -192,7 +206,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t<!<a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t<!<a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit </td>
|
||||
@@ -225,7 +239,7 @@ template<typename T , enable_if_t<!<a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_fetch_add_explicit </td>
|
||||
@@ -253,7 +267,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_fetch_and_explicit </td>
|
||||
@@ -281,7 +295,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_fetch_max_explicit </td>
|
||||
@@ -337,7 +351,7 @@ template<> </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_fetch_min_explicit </td>
|
||||
@@ -393,7 +407,7 @@ template<> </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_fetch_mul_explicit </td>
|
||||
@@ -421,7 +435,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_fetch_or_explicit </td>
|
||||
@@ -449,7 +463,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC T mlx_atomic_load_explicit </td>
|
||||
@@ -472,7 +486,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
template<typename T, enable_if_t< <a class="el" href="#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a>< T >, bool > = true> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC void mlx_atomic_store_explicit </td>
|
||||
@@ -501,7 +515,7 @@ template<typename T , enable_if_t< <a class="el" href="#a91a8bdcae647947a8
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
@@ -512,7 +526,7 @@ template<typename T > </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -525,10 +539,13 @@ template<typename T > </div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="atomic_8h.html">atomic.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
var atomic_8h =
|
||||
[
|
||||
[ "mlx_atomic< T, typename >", "structmlx__atomic.html", "structmlx__atomic" ],
|
||||
[ "mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >", "structmlx__atomic.html", "structmlx__atomic" ],
|
||||
[ "mlx_atomic_compare_exchange_weak_explicit", "atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f", null ],
|
||||
[ "mlx_atomic_compare_exchange_weak_explicit", "atomic_8h.html#aa8f47b2e9b95d4b00ad51f08b070deb5", null ],
|
||||
[ "mlx_atomic_fetch_add_explicit", "atomic_8h.html#aad448d9e06e001700b65ca8317216a3b", null ],
|
||||
[ "mlx_atomic_fetch_and_explicit", "atomic_8h.html#a253e3c870c0ddc7c28ab2f6ca2c3eae5", null ],
|
||||
[ "mlx_atomic_fetch_max_explicit", "atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c", null ],
|
||||
[ "mlx_atomic_fetch_max_explicit< float >", "atomic_8h.html#a1dce2abfa16417122c4d2bf261129ae4", null ],
|
||||
[ "mlx_atomic_fetch_min_explicit", "atomic_8h.html#a2ec33dca0039bd944d73d1c2b378cc19", null ],
|
||||
[ "mlx_atomic_fetch_min_explicit< float >", "atomic_8h.html#ab7d1dc49f319f239b7ee0b7c72976dd0", null ],
|
||||
[ "mlx_atomic_fetch_mul_explicit", "atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3", null ],
|
||||
[ "mlx_atomic_fetch_or_explicit", "atomic_8h.html#ab7391f197001471e4788312bdb6ab37a", null ],
|
||||
[ "mlx_atomic_load_explicit", "atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99", null ],
|
||||
[ "mlx_atomic_store_explicit", "atomic_8h.html#a0ae453140b0819a4c02f265334de98c0", null ],
|
||||
[ "is_metal_atomic", "atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24", null ]
|
||||
];
|
||||
+50
-35
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/atomic.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('atomic_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">atomic.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -99,7 +113,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <metal_stdlib></span></div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacemetal.html">metal</a>;</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// Atomic utils</span></div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#pragma METAL internals : enable</span></div>
|
||||
@@ -121,11 +135,11 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00030" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html"> 30</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic</a><T, enable_if_t<<a class="code hl_variable" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a><T>>> {</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d"> 31</a></span> atomic<T> <a class="code hl_variable" href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d">val</a>;</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx__atomic.html"> 30</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic</a><T, enable_if_t<<a class="code hl_variable" href="atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24">is_metal_atomic</a><T>>> {</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx__atomic.html#a8dbf729fcd8c4a16e41b546c7405543d"> 31</a></span> atomic<T> <a class="code hl_variable" href="structmlx__atomic.html#a8dbf729fcd8c4a16e41b546c7405543d">val</a>;</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span></div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">// Native metal atomics</span></div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">template</span> <<span class="keyword">typename</span> T, enable_if_t<is_metal_atomic<T>, <span class="keywordtype">bool</span>> = true></div>
|
||||
@@ -256,7 +270,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span></div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment">// Custom atomics</span></div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="keyword">namespace </span>{</div>
|
||||
@@ -267,14 +281,14 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="keyword">union </span>uint_or_packed {</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> T val[packing_size<T>];</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> uint <a class="code hl_function" href="namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825">bits</a>;</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> uint bits;</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span>};</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Op></div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="keyword">struct </span>mlx_atomic_update_helper {</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> uint operator()(uint_or_packed<T> init, T update, <span class="keywordtype">size_t</span> elem_offset) {</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> Op <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>;</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset] = <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>(update, <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset]);</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> Op op;</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset] = op(update, <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.val[elem_offset]);</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">init</a>.bits;</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span>};</div>
|
||||
@@ -470,21 +484,22 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="aatomic_8h_html_ac480f2b459a8ad9095cee353e152d00c"><div class="ttname"><a href="atomic_8h.html#ac480f2b459a8ad9095cee353e152d00c">mlx_atomic_fetch_max_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_max_explicit(device mlx_atomic< T > *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:75</div></div>
|
||||
<div class="ttc" id="aatomic_8h_html_ad7f32327ff66354cfa2f0cfdac79316f"><div class="ttname"><a href="atomic_8h.html#ad7f32327ff66354cfa2f0cfdac79316f">mlx_atomic_compare_exchange_weak_explicit</a></div><div class="ttdeci">METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit(device mlx_atomic< T > *object, thread T *expected, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:102</div></div>
|
||||
<div class="ttc" id="aatomic_8h_html_adfdbea60436f14f1af9ce36e2a0a77a3"><div class="ttname"><a href="atomic_8h.html#adfdbea60436f14f1af9ce36e2a0a77a3">mlx_atomic_fetch_mul_explicit</a></div><div class="ttdeci">METAL_FUNC void mlx_atomic_fetch_mul_explicit(device mlx_atomic< T > *object, T val, size_t offset)</div><div class="ttdef"><b>Definition</b> atomic.h:91</div></div>
|
||||
<div class="ttc" id="acommon_2binary_8h_html_a70228731d29946574b238d21fb4b360c"><div class="ttname"><a href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a></div><div class="ttdeci">Op op</div><div class="ttdef"><b>Definition</b> binary.h:129</div></div>
|
||||
<div class="ttc" id="agroup__ops_html_ga484eaa10d5e19a4ca46d3a9cd9fab600"><div class="ttname"><a href="group__ops.html#ga484eaa10d5e19a4ca46d3a9cd9fab600">mlx::core::identity</a></div><div class="ttdeci">array identity(int n, Dtype dtype, StreamOrDevice s={})</div><div class="ttdoc">Create a square matrix of shape (n,n) of zeros, and ones in the major diagonal.</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html_a853c80479ab2264d9c4587c7bcac767b"><div class="ttname"><a href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">metal::max</a></div><div class="ttdeci">METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1distributed_html_a33633c058c7ec82cca4f237243c6810d"><div class="ttname"><a href="namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d">mlx::core::distributed::init</a></div><div class="ttdeci">Group init(bool strict=false)</div><div class="ttdoc">Initialize the distributed backend and return the group containing all discoverable processes.</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1random_html_abb895baa477f5a06b5f88e69245f1825"><div class="ttname"><a href="namespacemlx_1_1core_1_1random.html#abb895baa477f5a06b5f88e69245f1825">mlx::core::random::bits</a></div><div class="ttdeci">array bits(const std::vector< int > &shape, int width, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})</div><div class="ttdoc">Generate an array with type uint32 filled with random bits.</div></div>
|
||||
<div class="ttc" id="astructmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4_html_a8dbf729fcd8c4a16e41b546c7405543d"><div class="ttname"><a href="structmlx__atomic_3_01_t_00_01enable__if__t_3_01is__metal__atomic_3_01_t_01_4_01_4_01_4.html#a8dbf729fcd8c4a16e41b546c7405543d">mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val</a></div><div class="ttdeci">atomic< T > val</div><div class="ttdef"><b>Definition</b> atomic.h:31</div></div>
|
||||
<div class="ttc" id="astructmlx__atomic_html"><div class="ttname"><a href="structmlx__atomic.html">mlx_atomic</a></div><div class="ttdef"><b>Definition</b> atomic.h:25</div></div>
|
||||
<div class="ttc" id="astructmlx__atomic_html_a6f6651b8dd8149917c50cd99b13c6747"><div class="ttname"><a href="structmlx__atomic.html#a6f6651b8dd8149917c50cd99b13c6747">mlx_atomic::val</a></div><div class="ttdeci">atomic< uint > val</div><div class="ttdef"><b>Definition</b> atomic.h:26</div></div>
|
||||
<div class="ttc" id="astructmlx__atomic_html_a8dbf729fcd8c4a16e41b546c7405543d"><div class="ttname"><a href="structmlx__atomic.html#a8dbf729fcd8c4a16e41b546c7405543d">mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >::val</a></div><div class="ttdeci">atomic< T > val</div><div class="ttdef"><b>Definition</b> atomic.h:31</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="atomic_8h.html">atomic.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/loader.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_2loader_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -117,10 +131,13 @@ Namespaces</h2></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2loader_8h.html">loader.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
var attn_2loader_8h =
|
||||
[
|
||||
[ "mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >", "structmlx_1_1steel_1_1_block_loader.html", "structmlx_1_1steel_1_1_block_loader" ],
|
||||
[ "mlx::steel::BlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, alignment, n_reads, TCOLS, TROWS >::ReadVector", "structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html", "structmlx_1_1steel_1_1_block_loader_1_1_read_vector" ],
|
||||
[ "mlx::steel::CShape< R, C >", "structmlx_1_1steel_1_1_c_shape.html", "structmlx_1_1steel_1_1_c_shape" ],
|
||||
[ "mlx::steel::BlockLoaderT< T, BROWS, BCOLS, kDstStrRow, kDstStrCol, reduction_dim, tgp_size, n_reads, TCOLS, TROWS >", "structmlx_1_1steel_1_1_block_loader_t.html", "structmlx_1_1steel_1_1_block_loader_t" ]
|
||||
];
|
||||
+71
-55
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/loader.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_2loader_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">loader.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -96,11 +110,11 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "<a class="code" href="steel_2defines_8h.html">mlx/backend/metal/kernels/steel/defines.h</a>"</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">// Loading helper</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx.html">mlx</a> {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>steel {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">template</span> <</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typename</span> T,</div>
|
||||
@@ -113,7 +127,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">short</span> n_reads = (BCOLS * BROWS) / (tgp_size),</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordtype">short</span> TCOLS = BCOLS / n_reads,</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">short</span> TROWS = tgp_size / TCOLS></div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">struct </span>BlockLoader {</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">BlockLoader</a> {</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5"> 26</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5">n_rows</a> = (BROWS + TROWS - 1) / TROWS;</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092"> 27</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a> = n_reads;</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
@@ -130,7 +144,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2"> 39</a></span> threadgroup T* <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa"> 40</a></span> <span class="keyword">const</span> device T* <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">src</a>;</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(alignment * sizeof(T)) <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html">ReadVector</a> {</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span><span class="keyword">alignas</span>(alignment * sizeof(T)) ReadVector {</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d"> 43</a></span> uint8_t <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d">v</a>[<span class="keyword">sizeof</span>(T) * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a>];</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> };</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
@@ -147,19 +161,19 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b">thread_idx</a>(simd_group_id * 32 + simd_lane_id),</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af">bi</a>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b">thread_idx</a> / TCOLS),</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">bj</a>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a> * (<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b">thread_idx</a> % TCOLS)),</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> dst(dst_ + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af">bi</a> * dst_ld + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">bj</a>),</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>(dst_ + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af">bi</a> * dst_ld + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">bj</a>),</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">src</a>(src_ + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af">bi</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d">src_ld</a> + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">bj</a>) {}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">/* Apply operation to threadgroup without bound checking */</span></div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> UnaryOp></div>
|
||||
<div class="foldopen" id="foldopen00063" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf"> 63</a></span> METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf">apply_inplace_op</a>(thread <span class="keyword">const</span> UnaryOp& <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf"> 63</a></span> METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf">apply_inplace_op</a>(thread <span class="keyword">const</span> UnaryOp& op)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < BROWS; i += TROWS) {</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> dst[i * dst_ld + j] = <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>.apply(dst[i * dst_ld + j]);</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>[i * dst_ld + j] = op.apply(<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>[i * dst_ld + j]);</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
|
||||
@@ -170,8 +184,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27"> 74</a></span> METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27">load_unsafe</a>()<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < BROWS; i += TROWS) {</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> *((threadgroup <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html">ReadVector</a>*)(&dst[i * dst_ld])) =</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> *((<span class="keyword">const</span> device <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html">ReadVector</a>*)(&<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">src</a>[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d">src_ld</a>]));</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> *((threadgroup ReadVector*)(&<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>[i * dst_ld])) =</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> *((<span class="keyword">const</span> device ReadVector*)(&<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">src</a>[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d">src_ld</a>]));</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
|
||||
</div>
|
||||
@@ -187,7 +201,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < BROWS; i += TROWS) {</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> dst[i * dst_ld + j] = T(0);</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>[i * dst_ld + j] = T(0);</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> }</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span>;</div>
|
||||
@@ -220,7 +234,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Copy values to threadgroup memory</span></div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> dst[i * dst_ld + j] = tmp_val[j];</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">dst</a>[i * dst_ld + j] = tmp_val[j];</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
|
||||
@@ -254,7 +268,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">short</span> TCOLS = BCOLS / n_reads,</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">short</span> TROWS = tgp_size / TCOLS></div>
|
||||
<div class="foldopen" id="foldopen00153" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_t.html"> 153</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader_t.html">BlockLoaderT</a> {</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_t.html"> 153</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader_t.html#a076616a7c67ad1b847e0e6b046077ee2">BlockLoaderT</a> {</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_t.html#a0ccc7caa93e6e709981a1a08159d41dc"> 154</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a0ccc7caa93e6e709981a1a08159d41dc">n_rows</a> = (BROWS + TROWS - 1) / TROWS;</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5"> 155</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5">vec_size</a> = n_reads;</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
|
||||
@@ -284,20 +298,20 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#af2838998a02866f22b525f9b6ae004da">thread_idx</a>(simd_group_id * 32 + simd_lane_id),</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6964273994b06d6cf8ef7e59fb10bb35">bi</a>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#af2838998a02866f22b525f9b6ae004da">thread_idx</a> / TCOLS),</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957">bj</a>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5">vec_size</a> * (<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#af2838998a02866f22b525f9b6ae004da">thread_idx</a> % TCOLS)),</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> dst(dst_ + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6964273994b06d6cf8ef7e59fb10bb35">bi</a> * kDstStrRow + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957">bj</a> * kDstStrCol),</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db">dst</a>(dst_ + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6964273994b06d6cf8ef7e59fb10bb35">bi</a> * kDstStrRow + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957">bj</a> * kDstStrCol),</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a7004a4efaa483cc79b8b79810a17c777">src</a>(src_ + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6964273994b06d6cf8ef7e59fb10bb35">bi</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aeba87e81185da6b20a092c5d240d3321">src_ld</a> + <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aca83e49c31095badc8a46eb3c8e00957">bj</a>) {}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="comment">/* Apply operation to threadgroup without bound checking */</span></div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keyword">typename</span> UnaryOp></div>
|
||||
<div class="foldopen" id="foldopen00187" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97"> 187</a></span> METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97">apply_inplace_op</a>(thread <span class="keyword">const</span> UnaryOp& <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97"> 187</a></span> METAL_FUNC <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97">apply_inplace_op</a>(thread <span class="keyword">const</span> UnaryOp& op)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < BROWS; i += TROWS) {</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> dst[i * kDstStrRow + j * kDstStrCol] =</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_variable" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>.apply(dst[i * kDstStrRow + j * kDstStrCol]);</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db">dst</a>[i * kDstStrRow + j * kDstStrCol] =</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> op.apply(<a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db">dst</a>[i * kDstStrRow + j * kDstStrCol]);</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> }</div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
|
||||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> }</div>
|
||||
@@ -310,7 +324,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < BROWS; i += TROWS) {</div>
|
||||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> dst[i * kDstStrRow + j * kDstStrCol] = <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a7004a4efaa483cc79b8b79810a17c777">src</a>[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aeba87e81185da6b20a092c5d240d3321">src_ld</a> + j];</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db">dst</a>[i * kDstStrRow + j * kDstStrCol] = <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a7004a4efaa483cc79b8b79810a17c777">src</a>[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#aeba87e81185da6b20a092c5d240d3321">src_ld</a> + j];</div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> }</div>
|
||||
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> }</div>
|
||||
@@ -327,7 +341,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < BROWS; i += TROWS) {</div>
|
||||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> dst[i * kDstStrRow + j * kDstStrCol] = T(0);</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db">dst</a>[i * kDstStrRow + j * kDstStrCol] = T(0);</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> }</div>
|
||||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> }</div>
|
||||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">return</span>;</div>
|
||||
@@ -360,7 +374,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="comment">// Copy values to threadgroup memory</span></div>
|
||||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a9ac651d9e5097507c57b10dfeb40bfe5">vec_size</a>; j++) {</div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> dst[i * kDstStrRow + j * kDstStrCol] = tmp_val[j];</div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_loader_t.html#a6eb4e566b687395e27f290da288362db">dst</a>[i * kDstStrRow + j * kDstStrCol] = tmp_val[j];</div>
|
||||
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
|
||||
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> }</div>
|
||||
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
|
||||
@@ -377,28 +391,27 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
|
||||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span>} <span class="comment">// namespace steel</span></div>
|
||||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span>} <span class="comment">// namespace mlx</span></div>
|
||||
<div class="ttc" id="acommon_2binary_8h_html_a70228731d29946574b238d21fb4b360c"><div class="ttname"><a href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a></div><div class="ttdeci">Op op</div><div class="ttdef"><b>Definition</b> binary.h:129</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
|
||||
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html"><div class="ttname"><a href="steel_2defines_8h.html">defines.h</a></div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html_a5a5c3095b132a7589bc19cd5cb80e2c6"><div class="ttname"><a href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div><div class="ttdeci">#define STEEL_PRAGMA_UNROLL</div><div class="ttdef"><b>Definition</b> defines.h:4</div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_1_1_read_vector_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html">mlx::steel::BlockLoader::ReadVector</a></div><div class="ttdef"><b>Definition</b> loader.h:42</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_1_1_read_vector_html_a20963f7191251defca48bf8a843d019d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_1_1_read_vector.html#a20963f7191251defca48bf8a843d019d">mlx::steel::BlockLoader::ReadVector::v</a></div><div class="ttdeci">uint8_t v[sizeof(T) *vec_size]</div><div class="ttdef"><b>Definition</b> loader.h:43</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a064e2cc77e0b1cf0f8027929e031775b"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b">mlx::steel::BlockLoader::thread_idx</a></div><div class="ttdeci">const short thread_idx</div><div class="ttdef"><b>Definition</b> loader.h:34</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html">mlx::steel::BlockLoader</a></div><div class="ttdef"><b>Definition</b> loader.h:25</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a064e2cc77e0b1cf0f8027929e031775b"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::thread_idx</a></div><div class="ttdeci">const short thread_idx</div><div class="ttdef"><b>Definition</b> loader.h:34</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a37aca066e63dff238865b5923a2d4335"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a37aca066e63dff238865b5923a2d4335">mlx::steel::BlockLoader::BlockLoader</a></div><div class="ttdeci">METAL_FUNC BlockLoader(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> loader.h:47</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a58bdf9b9c81962733e22ecdeae28c092"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">mlx::steel::BlockLoader::vec_size</a></div><div class="ttdeci">STEEL_CONST short vec_size</div><div class="ttdef"><b>Definition</b> loader.h:27</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a58bdf9b9c81962733e22ecdeae28c092"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a58bdf9b9c81962733e22ecdeae28c092">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::vec_size</a></div><div class="ttdeci">STEEL_CONST short vec_size</div><div class="ttdef"><b>Definition</b> loader.h:27</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a6af21428f0e7c17b48ddedf4dd20a1e8"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a6af21428f0e7c17b48ddedf4dd20a1e8">mlx::steel::BlockLoader::next</a></div><div class="ttdeci">METAL_FUNC void next()</div><div class="ttdef"><b>Definition</b> loader.h:131</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a6c9e27f11f48b34580ed2c7e9cad9a27"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27">mlx::steel::BlockLoader::load_unsafe</a></div><div class="ttdeci">METAL_FUNC void load_unsafe() const</div><div class="ttdef"><b>Definition</b> loader.h:74</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a78c326e75ee35a484685771143047cd4"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">mlx::steel::BlockLoader::bj</a></div><div class="ttdeci">const short bj</div><div class="ttdef"><b>Definition</b> loader.h:36</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a973804e5b1d418c98c90861cda1a6fb5"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5">mlx::steel::BlockLoader::n_rows</a></div><div class="ttdeci">STEEL_CONST short n_rows</div><div class="ttdef"><b>Definition</b> loader.h:26</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a9ef13742bcdf07532d8f09394928a8af"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af">mlx::steel::BlockLoader::bi</a></div><div class="ttdeci">const short bi</div><div class="ttdef"><b>Definition</b> loader.h:35</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_aadafc50f7f06af434149d7469df4714d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d">mlx::steel::BlockLoader::src_ld</a></div><div class="ttdeci">const int src_ld</div><div class="ttdef"><b>Definition</b> loader.h:30</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_ab87876699d55473620c7ea99f9da911d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d">mlx::steel::BlockLoader::tile_stride</a></div><div class="ttdeci">const int tile_stride</div><div class="ttdef"><b>Definition</b> loader.h:31</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a78c326e75ee35a484685771143047cd4"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a78c326e75ee35a484685771143047cd4">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::bj</a></div><div class="ttdeci">const short bj</div><div class="ttdef"><b>Definition</b> loader.h:36</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a973804e5b1d418c98c90861cda1a6fb5"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a973804e5b1d418c98c90861cda1a6fb5">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::n_rows</a></div><div class="ttdeci">STEEL_CONST short n_rows</div><div class="ttdef"><b>Definition</b> loader.h:26</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_a9ef13742bcdf07532d8f09394928a8af"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#a9ef13742bcdf07532d8f09394928a8af">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::bi</a></div><div class="ttdeci">const short bi</div><div class="ttdef"><b>Definition</b> loader.h:35</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_aadafc50f7f06af434149d7469df4714d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::src_ld</a></div><div class="ttdeci">const int src_ld</div><div class="ttdef"><b>Definition</b> loader.h:30</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_ab87876699d55473620c7ea99f9da911d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::tile_stride</a></div><div class="ttdeci">const int tile_stride</div><div class="ttdef"><b>Definition</b> loader.h:31</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_abb0f4f66ec8b123627beb8eb4fbb609d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d">mlx::steel::BlockLoader::load_safe</a></div><div class="ttdeci">METAL_FUNC void load_safe(short2 src_tile_dim) const</div><div class="ttdef"><b>Definition</b> loader.h:83</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_ad1db14517568ae9eddfb6986ef31c7aa"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">mlx::steel::BlockLoader::src</a></div><div class="ttdeci">const device T * src</div><div class="ttdef"><b>Definition</b> loader.h:40</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_ad1db14517568ae9eddfb6986ef31c7aa"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#ad1db14517568ae9eddfb6986ef31c7aa">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::src</a></div><div class="ttdeci">const device T * src</div><div class="ttdef"><b>Definition</b> loader.h:40</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_adb4ca2cc193630a779de552fa8847ddf"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf">mlx::steel::BlockLoader::apply_inplace_op</a></div><div class="ttdeci">METAL_FUNC void apply_inplace_op(thread const UnaryOp &op) const</div><div class="ttdef"><b>Definition</b> loader.h:63</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_af1c6c35a42e9da4408c1013ff1741bc2"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">mlx::steel::BlockLoader::dst</a></div><div class="ttdeci">threadgroup T * dst</div><div class="ttdef"><b>Definition</b> loader.h:39</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_t_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_t.html">mlx::steel::BlockLoaderT</a></div><div class="ttdef"><b>Definition</b> loader.h:153</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_html_af1c6c35a42e9da4408c1013ff1741bc2"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader.html#af1c6c35a42e9da4408c1013ff1741bc2">mlx::steel::BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size >::dst</a></div><div class="ttdeci">threadgroup T * dst</div><div class="ttdef"><b>Definition</b> loader.h:39</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_t_html_a076616a7c67ad1b847e0e6b046077ee2"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_t.html#a076616a7c67ad1b847e0e6b046077ee2">mlx::steel::BlockLoaderT::BlockLoaderT</a></div><div class="ttdeci">METAL_FUNC BlockLoaderT(const device T *src_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> loader.h:171</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_t_html_a0ccc7caa93e6e709981a1a08159d41dc"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_t.html#a0ccc7caa93e6e709981a1a08159d41dc">mlx::steel::BlockLoaderT::n_rows</a></div><div class="ttdeci">STEEL_CONST short n_rows</div><div class="ttdef"><b>Definition</b> loader.h:154</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_loader_t_html_a2b136fad00dc54300e68aa6b905eff97"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_loader_t.html#a2b136fad00dc54300e68aa6b905eff97">mlx::steel::BlockLoaderT::apply_inplace_op</a></div><div class="ttdeci">METAL_FUNC void apply_inplace_op(thread const UnaryOp &op) const</div><div class="ttdef"><b>Definition</b> loader.h:187</div></div>
|
||||
@@ -417,10 +430,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_c_shape_html_a01b09227356b6a682a0694523a8e6901"><div class="ttname"><a href="structmlx_1_1steel_1_1_c_shape.html#a01b09227356b6a682a0694523a8e6901">mlx::steel::CShape::kCols</a></div><div class="ttdeci">STEEL_CONST int kCols</div><div class="ttdef"><b>Definition</b> loader.h:139</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_c_shape_html_a5caf36cb9acf9f90ba59a9b0b4197993"><div class="ttname"><a href="structmlx_1_1steel_1_1_c_shape.html#a5caf36cb9acf9f90ba59a9b0b4197993">mlx::steel::CShape::kRows</a></div><div class="ttdeci">STEEL_CONST int kRows</div><div class="ttdef"><b>Definition</b> loader.h:138</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2loader_8h.html">loader.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+43
-26
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/mma.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_2mma_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -112,7 +126,7 @@ Classes</h2></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag< T, kFragRows_, kFragCols_ ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html">mlx::steel::BaseMMAFrag< T, 8, 8 ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag< T, 8, 8 ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html">mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
@@ -128,15 +142,18 @@ Namespaces</h2></td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ad583e6038efc119542410f43b603d4ad" id="r_ad583e6038efc119542410f43b603d4ad"><td class="memTemplParams" colspan="2">template<typename T , typename U , int M, int N, int K> </td></tr>
|
||||
<tr class="memitem:ad583e6038efc119542410f43b603d4ad" id="r_ad583e6038efc119542410f43b603d4ad"><td class="memTemplParams" colspan="2">template<typename T, typename U, int M, int N, int K> </td></tr>
|
||||
<tr class="memitem:ad583e6038efc119542410f43b603d4ad"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1steel.html#ad583e6038efc119542410f43b603d4ad">mlx::steel::tile_matmad</a> (thread <a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html">MMATile</a>< T, M, N > &D, thread <a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html">MMATile</a>< U, M, K > &A, thread <a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html">MMATile</a>< U, K, N > &B, thread <a class="el" href="structmlx_1_1steel_1_1_m_m_a_tile.html">MMATile</a>< T, M, N > &C)</td></tr>
|
||||
<tr class="separator:ad583e6038efc119542410f43b603d4ad"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2mma_8h.html">mma.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
var attn_2mma_8h =
|
||||
[
|
||||
[ "mlx::steel::Shape2D< RInt, CInt >", "structmlx_1_1steel_1_1_shape2_d.html", "structmlx_1_1steel_1_1_shape2_d" ],
|
||||
[ "mlx::steel::Layout2D< Shape, Layout >", "structmlx_1_1steel_1_1_layout2_d.html", "structmlx_1_1steel_1_1_layout2_d" ],
|
||||
[ "mlx::steel::BaseMMAFrag< T, kFragRows_, kFragCols_ >", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", null ],
|
||||
[ "mlx::steel::BaseMMAFrag< T, 8, 8 >", "structmlx_1_1steel_1_1_base_m_m_a_frag.html", "structmlx_1_1steel_1_1_base_m_m_a_frag" ],
|
||||
[ "mlx::steel::MMATile< T, kTileRows_, kTileCols_, MMAFrag_ >", "structmlx_1_1steel_1_1_m_m_a_tile.html", "structmlx_1_1steel_1_1_m_m_a_tile" ],
|
||||
[ "mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >", "structmlx_1_1steel_1_1_block_m_m_a.html", "structmlx_1_1steel_1_1_block_m_m_a" ],
|
||||
[ "mlx::steel::tile_matmad", "namespacemlx_1_1steel.html#ad583e6038efc119542410f43b603d4ad", null ]
|
||||
];
|
||||
+154
-131
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/mma.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_2mma_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">mma.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -104,15 +118,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include "<a class="code" href="integral__constant_8h.html">mlx/backend/metal/kernels/steel/utils/integral_constant.h</a>"</span></div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacemetal.html">metal</a>;</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span></div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// MMA helper</span></div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx.html">mlx</a> {</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">namespace </span>steel {</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">template</span> <<span class="keyword">typename</span> RInt, <span class="keyword">typename</span> CInt></div>
|
||||
<div class="foldopen" id="foldopen00023" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_shape2_d.html"> 23</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_shape2_d.html">Shape2D</a> {</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_shape2_d.html"> 23</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_shape2_d.html#a070ce70eb6d84361c7f313159c438a5c">Shape2D</a> {</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_shape2_d.html#a6e9e8d56782fc8772bc432c7f58393fe"> 24</a></span> RInt <a class="code hl_variable" href="structmlx_1_1steel_1_1_shape2_d.html#a6e9e8d56782fc8772bc432c7f58393fe">r</a>;</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_shape2_d.html#ae51347b2131647f2ed735ed43840d26e"> 25</a></span> CInt <a class="code hl_variable" href="structmlx_1_1steel_1_1_shape2_d.html#ae51347b2131647f2ed735ed43840d26e">c</a>;</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||
@@ -140,25 +154,25 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">struct </span>BaseMMAFrag<T, 8, 8> {</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a2fe53db449c692226f23f6b99fb2c0d4"> 48</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> kFragRows = 8;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a211102315e2afbcfcd2e2c201b638e9f"> 49</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> kFragCols = 8;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4"> 48</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4">kFragRows</a> = 8;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f"> 49</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f">kFragCols</a> = 8;</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a3c34dfdc944db110f4735f1b25307cf0"> 51</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> kElemsPerFrag = (kFragRows * kFragCols) / 32;</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0"> 51</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0">kElemsPerFrag</a> = (<a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4">kFragRows</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f">kFragCols</a>) / 32;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a76aa5aa690dbcc954e957d767fad661f"> 53</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> kElemRows = 1;</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7c212200d86b4e93f274d99addf668bd"> 54</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> kElemCols = 2;</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f"> 53</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a> = 1;</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd"> 54</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> = 2;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static_assert</span>(</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> kElemRows * kElemCols == kElemsPerFrag,</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a> * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> == <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0">kElemsPerFrag</a>,</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="stringliteral">"MMAFrag shape is not consistent with MMAFrag size"</span>);</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887"> 60</a></span> <span class="keyword">typedef</span> metal::simdgroup_matrix<T, kFragRows, kFragCols> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a>;</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c"> 61</a></span> <span class="keyword">typedef</span> metal::vec<T, kElemsPerFrag> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>;</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a5ec2e40a8f5ad98c71b825544cdd878b"> 62</a></span> <span class="keyword">typedef</span> metal::vec<T, kElemRows> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a5ec2e40a8f5ad98c71b825544cdd878b">row_frag_type</a>;</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aab8dd1c6917247da41dd3a31139a665f"> 63</a></span> <span class="keyword">typedef</span> metal::vec<T, kElemCols> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aab8dd1c6917247da41dd3a31139a665f">col_frag_type</a>;</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9"> 60</a></span> <span class="keyword">typedef</span> metal::simdgroup_matrix<T, kFragRows, kFragCols> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>;</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b"> 61</a></span> <span class="keyword">typedef</span> metal::vec<T, kElemsPerFrag> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>;</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3dcd4301390937f89ed1dde6d28e341f"> 62</a></span> <span class="keyword">typedef</span> metal::vec<T, kElemRows> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3dcd4301390937f89ed1dde6d28e341f">row_frag_type</a>;</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#adbb262a3c872e26533b68a39db16459e"> 63</a></span> <span class="keyword">typedef</span> metal::vec<T, kElemCols> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#adbb262a3c872e26533b68a39db16459e">col_frag_type</a>;</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
|
||||
<div class="foldopen" id="foldopen00065" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83"> 65</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> short2 <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83">get_coord</a>(ushort simd_lane_id</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7331fff1d12f2f8b72b0006a3ad0dd83"> 65</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> short2 <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7331fff1d12f2f8b72b0006a3ad0dd83">get_coord</a>(ushort simd_lane_id</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> [[thread_index_in_simdgroup]]) {</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">const</span> <span class="keywordtype">short</span> qid = simd_lane_id / 4;</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">const</span> <span class="keywordtype">short</span> fm = (qid & 4) + ((simd_lane_id / 2) % 4);</div>
|
||||
@@ -170,12 +184,12 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> SrcPtrType, <span class="keyword">typename</span> StrX, <span class="keyword">typename</span> StrY></div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span></div>
|
||||
<div class="foldopen" id="foldopen00075" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c"> 75</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c">load</a>(thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& dst, SrcPtrType src, StrX str_x, StrY str_y) {</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ac73006b36fc710feda3a7c796e21415c"> 75</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ac73006b36fc710feda3a7c796e21415c">load</a>(thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& dst, SrcPtrType src, StrX str_x, StrY str_y) {</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < kElemRows; i++) {</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < kElemCols; j++) {</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> dst[i * kElemCols + j] = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(src[i * str_x + j * str_y]);</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> dst[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j] = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(src[i * str_x + j * str_y]);</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> }</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
|
||||
@@ -190,15 +204,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">typename</span> OffX,</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typename</span> OffY></div>
|
||||
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d"> 93</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d">load_safe</a>(</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& dst,</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ad22aaee4a2938cbdd315b39eda84e07d"> 93</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ad22aaee4a2938cbdd315b39eda84e07d">load_safe</a>(</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& dst,</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> SrcPtrType src,</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> StrX str_x,</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> StrY str_y,</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> LimX lim_x,</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> LimY lim_y,</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> OffX off_x = <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<0></a>{},</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> OffY off_y = <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<0></a>{}) {</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> OffX off_x = <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<0></a>{},</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> OffY off_y = <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<0></a>{}) {</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < kElemRows; i++) {</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
@@ -217,14 +231,14 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DstPtrType, <span class="keyword">typename</span> StrX, <span class="keyword">typename</span> StrY></div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span></div>
|
||||
<div class="foldopen" id="foldopen00118" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb"> 118</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb">store</a>(<span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& src, DstPtrType dst, StrX str_x, StrY str_y) {</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#aa8f50ea8961ec5b35c1b81366d64f2cb"> 118</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#aa8f50ea8961ec5b35c1b81366d64f2cb">store</a>(<span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& src, DstPtrType dst, StrX str_x, StrY str_y) {</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">using </span>U = <a class="code hl_typedef" href="namespacemetal.html#ac82ee6c3fbe9ec5c78c07329424aaec9">pointer_element_t<DstPtrType></a>;</div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < kElemRows; i++) {</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < kElemCols; j++) {</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> dst[i * str_x + j * str_y] = <span class="keyword">static_cast<</span>U<span class="keyword">></span>(src[i * kElemCols + j]);</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> dst[i * str_x + j * str_y] = <span class="keyword">static_cast<</span>U<span class="keyword">></span>(src[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j]);</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
|
||||
@@ -239,15 +253,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">typename</span> OffX,</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">typename</span> OffY></div>
|
||||
<div class="foldopen" id="foldopen00138" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328"> 138</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328">store_safe</a>(</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& src,</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1f0b00daad8eba2f855bb306e70d2328"> 138</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1f0b00daad8eba2f855bb306e70d2328">store_safe</a>(</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& src,</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> DstPtrType dst,</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> StrX str_x,</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> StrY str_y,</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> LimX lim_x,</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> LimY lim_y,</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> OffX off_x = <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<0></a>{},</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> OffY off_y = <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<0></a>{}) {</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> OffX off_x = <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<0></a>{},</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> OffY off_y = <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<0></a>{}) {</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">using </span>U = <a class="code hl_typedef" href="namespacemetal.html#ac82ee6c3fbe9ec5c78c07329424aaec9">pointer_element_t<DstPtrType></a>;</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
@@ -264,40 +278,40 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
|
||||
<div class="foldopen" id="foldopen00161" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3"> 161</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& D,</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& A,</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& B,</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& C) {</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a> D_mat;</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a> A_mat;</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a> B_mat;</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a> C_mat;</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3"> 161</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& D,</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& A,</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& B,</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& C) {</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> D_mat;</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> A_mat;</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> B_mat;</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a> C_mat;</div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>&<span class="keyword">></span>(A_mat.thread_elements()) = A;</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>&<span class="keyword">></span>(B_mat.thread_elements()) = B;</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>&<span class="keyword">></span>(C_mat.thread_elements()) = C;</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&<span class="keyword">></span>(A_mat.thread_elements()) = A;</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&<span class="keyword">></span>(B_mat.thread_elements()) = B;</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&<span class="keyword">></span>(C_mat.thread_elements()) = C;</div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> mma(D_mat, A_mat, B_mat, C_mat);</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3">mma</a>(D_mat, A_mat, B_mat, C_mat);</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> D = <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>&<span class="keyword">></span>(D_mat.thread_elements());</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> D = <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>&<span class="keyword">></span>(D_mat.thread_elements());</div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
|
||||
<div class="foldopen" id="foldopen00180" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946"> 180</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946">mma</a>(</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a>& D,</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a>& A,</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a>& B,</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mat_type</a>& C) {</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1868f57d57c8adedab2c58492ec76946"> 180</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1868f57d57c8adedab2c58492ec76946">mma</a>(</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>& D,</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>& A,</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>& B,</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mat_type</a>& C) {</div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> simdgroup_multiply_accumulate(D, A, B, C);</div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Op></div>
|
||||
<div class="foldopen" id="foldopen00189" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970"> 189</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970">row_reduce</a>(</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> thread <span class="keyword">const</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& inp_vals,</div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a51d662e4cff88b5ad17d7c44bb6b6970"> 189</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a51d662e4cff88b5ad17d7c44bb6b6970">row_reduce</a>(</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> thread <span class="keyword">const</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& inp_vals,</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> thread T* reduced_vals) {</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> T thr_reduce = Op::apply(inp_vals.x, inp_vals.y);</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
|
||||
@@ -313,15 +327,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
|
||||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Op></div>
|
||||
<div class="foldopen" id="foldopen00204" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010"> 204</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010">row_bin_op</a>(</div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">frag_type</a>& inp_vals,</div>
|
||||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a318c4279bdc7b39b7919f108b1cd8010"> 204</a></span> METAL_FUNC <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a318c4279bdc7b39b7919f108b1cd8010">row_bin_op</a>(</div>
|
||||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">frag_type</a>& inp_vals,</div>
|
||||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> thread T* row_vals) {</div>
|
||||
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < kElemRows; i++) {</div>
|
||||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> i = 0; i < <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">kElemRows</a>; i++) {</div>
|
||||
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_define" href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div>
|
||||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < kElemCols; j++) {</div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> inp_vals[i * kElemCols + j] =</div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> Op::apply(inp_vals[i * kElemCols + j], row_vals[i]);</div>
|
||||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">for</span> (<span class="keywordtype">short</span> j = 0; j < <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a>; j++) {</div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> inp_vals[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j] =</div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> Op::apply(inp_vals[i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">kElemCols</a> + j], row_vals[i]);</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> }</div>
|
||||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> }</div>
|
||||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> }</div>
|
||||
@@ -334,8 +348,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordtype">int</span> kTileCols_,</div>
|
||||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">class </span>MMAFrag_ = BaseMMAFrag<T, 8, 8>></div>
|
||||
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="keyword">struct </span>MMATile {</div>
|
||||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a6dadcd666afb3759a11094e754560dd4"> 224</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a6dadcd666afb3759a11094e754560dd4">MMAFrag_t</a> = MMAFrag_;</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628"> 225</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628">elem_type</a> = T;</div>
|
||||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382"> 224</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382">MMAFrag_t</a> = MMAFrag_;</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c"> 225</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">elem_type</a> = T;</div>
|
||||
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7"> 226</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a> = MMAFrag_t::kFragRows;</div>
|
||||
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906"> 227</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906">kFragCols</a> = MMAFrag_t::kFragCols;</div>
|
||||
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6"> 228</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6">kElemsPerFrag</a> = MMAFrag_t::kElemsPerFrag;</div>
|
||||
@@ -394,14 +408,14 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
|
||||
<div class="foldopen" id="foldopen00275" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc"> 275</a></span> METAL_FUNC thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628">elem_type</a>* <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc">elems</a>() {</div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628">elem_type</a>*<span class="keyword">></span>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62">val_frags</a>);</div>
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc"> 275</a></span> METAL_FUNC thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">elem_type</a>* <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc">elems</a>() {</div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">elem_type</a>*<span class="keyword">></span>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62">val_frags</a>);</div>
|
||||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
|
||||
<div class="foldopen" id="foldopen00279" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1"> 279</a></span> METAL_FUNC <span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628">elem_type</a>* <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1">elems</a>()<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628">elem_type</a>*<span class="keyword">></span>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62">val_frags</a>);</div>
|
||||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1"> 279</a></span> METAL_FUNC <span class="keyword">const</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">elem_type</a>* <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1">elems</a>()<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">elem_type</a>*<span class="keyword">></span>(<a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62">val_frags</a>);</div>
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
|
||||
@@ -445,8 +459,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> &(</div>
|
||||
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> src[(i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a>) * w_x * str_x +</div>
|
||||
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> (j * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906">kFragCols</a>) * w_y * str_y]),</div>
|
||||
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<str_x></a>{},</div>
|
||||
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<str_y></a>{});</div>
|
||||
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<str_x></a>{},</div>
|
||||
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<str_y></a>{});</div>
|
||||
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> }</div>
|
||||
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> }</div>
|
||||
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
|
||||
@@ -464,8 +478,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> &(</div>
|
||||
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> dst[(i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a>) * w_x * str_x +</div>
|
||||
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> (j * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906">kFragCols</a>) * w_y * str_y]),</div>
|
||||
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<str_x></a>{},</div>
|
||||
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<str_y></a>{});</div>
|
||||
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<str_x></a>{},</div>
|
||||
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<str_y></a>{});</div>
|
||||
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> }</div>
|
||||
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> }</div>
|
||||
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> }</div>
|
||||
@@ -482,7 +496,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4">frag_at</a>(i, j),</div>
|
||||
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> &(src[(i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a>) * w_x * ld + (j * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906">kFragCols</a>) * w_y]),</div>
|
||||
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> ld,</div>
|
||||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<1></a>{});</div>
|
||||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<1></a>{});</div>
|
||||
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> }</div>
|
||||
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> }</div>
|
||||
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> }</div>
|
||||
@@ -499,7 +513,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4">frag_at</a>(i, j),</div>
|
||||
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> &(dst[(i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a>) * w_x * ld + (j * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906">kFragCols</a>) * w_y]),</div>
|
||||
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> ld,</div>
|
||||
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<1></a>{});</div>
|
||||
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<1></a>{});</div>
|
||||
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> }</div>
|
||||
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> }</div>
|
||||
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> }</div>
|
||||
@@ -517,7 +531,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4">frag_at</a>(i, j),</div>
|
||||
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> src,</div>
|
||||
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> ld,</div>
|
||||
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<1></a>{},</div>
|
||||
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<1></a>{},</div>
|
||||
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> src_tile_dims.y,</div>
|
||||
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> src_tile_dims.x,</div>
|
||||
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> (i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a>) * w_x,</div>
|
||||
@@ -539,7 +553,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <a class="code hl_function" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a1a6b1446e8c8da46885bbaa8e8fdc7e4">frag_at</a>(i, j),</div>
|
||||
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> dst,</div>
|
||||
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> ld,</div>
|
||||
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <a class="code hl_struct" href="structmlx_1_1steel_1_1integral__constant.html">Int<1></a>{},</div>
|
||||
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <a class="code hl_typedef" href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">Int<1></a>{},</div>
|
||||
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> dst_tile_dims.y,</div>
|
||||
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> dst_tile_dims.x,</div>
|
||||
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> (i * <a class="code hl_variable" href="structmlx_1_1steel_1_1_m_m_a_tile.html#a594142f957ffb99296a243f7af7b59e7">kFragRows</a>) * w_x,</div>
|
||||
@@ -592,7 +606,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="keyword">struct </span>BlockMMA {</div>
|
||||
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// MMAFrag size</span></div>
|
||||
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d"> 451</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d">kFragSize</a> = 8;</div>
|
||||
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html#a8231b0e3475077c1381eb8f5daf62e35"> 452</a></span> <span class="keyword">using </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">MMAFrag_acc_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">BaseMMAFrag<AccumType, kFragSize, kFragSize></a>;</div>
|
||||
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c"> 452</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c">MMAFrag_acc_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">BaseMMAFrag<AccumType, kFragSize, kFragSize></a>;</div>
|
||||
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> </div>
|
||||
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <span class="comment">// Warp tile simdgroup matrix strides along M</span></div>
|
||||
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307"> 455</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307">TM_stride</a> = <a class="code hl_variable" href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d">kFragSize</a> * WM;</div>
|
||||
@@ -890,51 +904,59 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html_a5017efc9605e069cfb507137cd1a1852"><div class="ttname"><a href="namespacemetal.html#a5017efc9605e069cfb507137cd1a1852">metal::simd_shuffle_xor</a></div><div class="ttdeci">METAL_FUNC bfloat16_t simd_shuffle_xor(bfloat16_t data, ushort mask)</div><div class="ttdef"><b>Definition</b> bf16_math.h:377</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html_ac82ee6c3fbe9ec5c78c07329424aaec9"><div class="ttname"><a href="namespacemetal.html#ac82ee6c3fbe9ec5c78c07329424aaec9">metal::pointer_element_t</a></div><div class="ttdeci">typename pointer_element< remove_cv_t< T > >::type pointer_element_t</div><div class="ttdef"><b>Definition</b> type_traits.h:51</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html_ad583e6038efc119542410f43b603d4ad"><div class="ttname"><a href="namespacemlx_1_1steel.html#ad583e6038efc119542410f43b603d4ad">mlx::steel::tile_matmad</a></div><div class="ttdeci">METAL_FUNC void tile_matmad(thread MMATile< T, M, N > &D, thread MMATile< U, M, K > &A, thread MMATile< U, K, N > &B, thread MMATile< T, M, N > &C)</div><div class="ttdef"><b>Definition</b> mma.h:413</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html_afe36ddf6725498d273e5eef4f1579891"><div class="ttname"><a href="namespacemlx_1_1steel.html#afe36ddf6725498d273e5eef4f1579891">mlx::steel::Int</a></div><div class="ttdeci">integral_constant< int, val > Int</div><div class="ttdef"><b>Definition</b> integral_constant.h:48</div></div>
|
||||
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html"><div class="ttname"><a href="steel_2defines_8h.html">defines.h</a></div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html_a5a5c3095b132a7589bc19cd5cb80e2c6"><div class="ttname"><a href="steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6">STEEL_PRAGMA_UNROLL</a></div><div class="ttdeci">#define STEEL_PRAGMA_UNROLL</div><div class="ttdef"><b>Definition</b> defines.h:4</div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a1868f57d57c8adedab2c58492ec76946"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1868f57d57c8adedab2c58492ec76946">mlx::steel::BaseMMAFrag< T, 8, 8 >::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)</div><div class="ttdef"><b>Definition</b> mma.h:180</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a1f0b00daad8eba2f855bb306e70d2328"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a1f0b00daad8eba2f855bb306e70d2328">mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void store_safe(const thread frag_type &src, DstPtrType dst, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int< 0 >{}, OffY off_y=Int< 0 >{})</div><div class="ttdef"><b>Definition</b> mma.h:138</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a318c4279bdc7b39b7919f108b1cd8010"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a318c4279bdc7b39b7919f108b1cd8010">mlx::steel::BaseMMAFrag< T, 8, 8 >::row_bin_op</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_bin_op(thread frag_type &inp_vals, thread T *row_vals)</div><div class="ttdef"><b>Definition</b> mma.h:204</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a51d662e4cff88b5ad17d7c44bb6b6970"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a51d662e4cff88b5ad17d7c44bb6b6970">mlx::steel::BaseMMAFrag< T, 8, 8 >::row_reduce</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_reduce(thread const frag_type &inp_vals, thread T *reduced_vals)</div><div class="ttdef"><b>Definition</b> mma.h:189</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a5ec2e40a8f5ad98c71b825544cdd878b"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a5ec2e40a8f5ad98c71b825544cdd878b">mlx::steel::BaseMMAFrag< T, 8, 8 >::row_frag_type</a></div><div class="ttdeci">metal::vec< T, kElemRows > row_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:62</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a7331fff1d12f2f8b72b0006a3ad0dd83"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a7331fff1d12f2f8b72b0006a3ad0dd83">mlx::steel::BaseMMAFrag< T, 8, 8 >::get_coord</a></div><div class="ttdeci">static METAL_FUNC constexpr short2 get_coord(ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> mma.h:65</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a8028512f5a3d2b6acaf966be529627a3"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a8028512f5a3d2b6acaf966be529627a3">mlx::steel::BaseMMAFrag< T, 8, 8 >::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)</div><div class="ttdef"><b>Definition</b> mma.h:161</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a958b6952cbd9462d7ae9f6e029631887"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a958b6952cbd9462d7ae9f6e029631887">mlx::steel::BaseMMAFrag< T, 8, 8 >::mat_type</a></div><div class="ttdeci">metal::simdgroup_matrix< T, kFragRows, kFragCols > mat_type</div><div class="ttdef"><b>Definition</b> mma.h:60</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_a9f53a5e9b046b4f217e782b733941b0c"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#a9f53a5e9b046b4f217e782b733941b0c">mlx::steel::BaseMMAFrag< T, 8, 8 >::frag_type</a></div><div class="ttdeci">metal::vec< T, kElemsPerFrag > frag_type</div><div class="ttdef"><b>Definition</b> mma.h:61</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_aa8f50ea8961ec5b35c1b81366d64f2cb"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aa8f50ea8961ec5b35c1b81366d64f2cb">mlx::steel::BaseMMAFrag< T, 8, 8 >::store</a></div><div class="ttdeci">static METAL_FUNC constexpr void store(const thread frag_type &src, DstPtrType dst, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:118</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_aab8dd1c6917247da41dd3a31139a665f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#aab8dd1c6917247da41dd3a31139a665f">mlx::steel::BaseMMAFrag< T, 8, 8 >::col_frag_type</a></div><div class="ttdeci">metal::vec< T, kElemCols > col_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:63</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_ac73006b36fc710feda3a7c796e21415c"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ac73006b36fc710feda3a7c796e21415c">mlx::steel::BaseMMAFrag< T, 8, 8 >::load</a></div><div class="ttdeci">static METAL_FUNC constexpr void load(thread frag_type &dst, SrcPtrType src, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:75</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4_html_ad22aaee4a2938cbdd315b39eda84e07d"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html#ad22aaee4a2938cbdd315b39eda84e07d">mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void load_safe(thread frag_type &dst, SrcPtrType src, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int< 0 >{}, OffY off_y=Int< 0 >{})</div><div class="ttdef"><b>Definition</b> mma.h:93</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html">mlx::steel::BaseMMAFrag</a></div><div class="ttdef"><b>Definition</b> mma.h:23</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a1868f57d57c8adedab2c58492ec76946"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1868f57d57c8adedab2c58492ec76946">mlx::steel::BaseMMAFrag< T, 8, 8 >::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread mat_type &D, thread mat_type &A, thread mat_type &B, thread mat_type &C)</div><div class="ttdef"><b>Definition</b> mma.h:180</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a1f0b00daad8eba2f855bb306e70d2328"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a1f0b00daad8eba2f855bb306e70d2328">mlx::steel::BaseMMAFrag< T, 8, 8 >::store_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void store_safe(const thread frag_type &src, DstPtrType dst, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int< 0 >{}, OffY off_y=Int< 0 >{})</div><div class="ttdef"><b>Definition</b> mma.h:138</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a211102315e2afbcfcd2e2c201b638e9f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a211102315e2afbcfcd2e2c201b638e9f">mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragCols</a></div><div class="ttdeci">STEEL_CONST int kFragCols</div><div class="ttdef"><b>Definition</b> mma.h:49</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a25675ae18947a97c6e04157b540103a9"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a25675ae18947a97c6e04157b540103a9">mlx::steel::BaseMMAFrag< T, 8, 8 >::mat_type</a></div><div class="ttdeci">metal::simdgroup_matrix< T, kFragRows, kFragCols > mat_type</div><div class="ttdef"><b>Definition</b> mma.h:60</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a2fe53db449c692226f23f6b99fb2c0d4"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a2fe53db449c692226f23f6b99fb2c0d4">mlx::steel::BaseMMAFrag< T, 8, 8 >::kFragRows</a></div><div class="ttdeci">STEEL_CONST int kFragRows</div><div class="ttdef"><b>Definition</b> mma.h:48</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a318c4279bdc7b39b7919f108b1cd8010"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a318c4279bdc7b39b7919f108b1cd8010">mlx::steel::BaseMMAFrag< T, 8, 8 >::row_bin_op</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_bin_op(thread frag_type &inp_vals, thread T *row_vals)</div><div class="ttdef"><b>Definition</b> mma.h:204</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a3c34dfdc944db110f4735f1b25307cf0"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3c34dfdc944db110f4735f1b25307cf0">mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemsPerFrag</a></div><div class="ttdeci">STEEL_CONST int kElemsPerFrag</div><div class="ttdef"><b>Definition</b> mma.h:51</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a3dcd4301390937f89ed1dde6d28e341f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a3dcd4301390937f89ed1dde6d28e341f">mlx::steel::BaseMMAFrag< T, 8, 8 >::row_frag_type</a></div><div class="ttdeci">metal::vec< T, kElemRows > row_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:62</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a51d662e4cff88b5ad17d7c44bb6b6970"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a51d662e4cff88b5ad17d7c44bb6b6970">mlx::steel::BaseMMAFrag< T, 8, 8 >::row_reduce</a></div><div class="ttdeci">static METAL_FUNC constexpr void row_reduce(thread const frag_type &inp_vals, thread T *reduced_vals)</div><div class="ttdef"><b>Definition</b> mma.h:189</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a7331fff1d12f2f8b72b0006a3ad0dd83"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7331fff1d12f2f8b72b0006a3ad0dd83">mlx::steel::BaseMMAFrag< T, 8, 8 >::get_coord</a></div><div class="ttdeci">static METAL_FUNC constexpr short2 get_coord(ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> mma.h:65</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a76aa5aa690dbcc954e957d767fad661f"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a76aa5aa690dbcc954e957d767fad661f">mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemRows</a></div><div class="ttdeci">STEEL_CONST int kElemRows</div><div class="ttdef"><b>Definition</b> mma.h:53</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a7c212200d86b4e93f274d99addf668bd"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a7c212200d86b4e93f274d99addf668bd">mlx::steel::BaseMMAFrag< T, 8, 8 >::kElemCols</a></div><div class="ttdeci">STEEL_CONST int kElemCols</div><div class="ttdef"><b>Definition</b> mma.h:54</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a8028512f5a3d2b6acaf966be529627a3"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8028512f5a3d2b6acaf966be529627a3">mlx::steel::BaseMMAFrag< T, 8, 8 >::mma</a></div><div class="ttdeci">static METAL_FUNC constexpr void mma(thread frag_type &D, thread frag_type &A, thread frag_type &B, thread frag_type &C)</div><div class="ttdef"><b>Definition</b> mma.h:161</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_a8536bfaa108031c2ea3e9ccdc766ee5b"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#a8536bfaa108031c2ea3e9ccdc766ee5b">mlx::steel::BaseMMAFrag< T, 8, 8 >::frag_type</a></div><div class="ttdeci">metal::vec< T, kElemsPerFrag > frag_type</div><div class="ttdef"><b>Definition</b> mma.h:61</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_aa8f50ea8961ec5b35c1b81366d64f2cb"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#aa8f50ea8961ec5b35c1b81366d64f2cb">mlx::steel::BaseMMAFrag< T, 8, 8 >::store</a></div><div class="ttdeci">static METAL_FUNC constexpr void store(const thread frag_type &src, DstPtrType dst, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:118</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_ac73006b36fc710feda3a7c796e21415c"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ac73006b36fc710feda3a7c796e21415c">mlx::steel::BaseMMAFrag< T, 8, 8 >::load</a></div><div class="ttdeci">static METAL_FUNC constexpr void load(thread frag_type &dst, SrcPtrType src, StrX str_x, StrY str_y)</div><div class="ttdef"><b>Definition</b> mma.h:75</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_ad22aaee4a2938cbdd315b39eda84e07d"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#ad22aaee4a2938cbdd315b39eda84e07d">mlx::steel::BaseMMAFrag< T, 8, 8 >::load_safe</a></div><div class="ttdeci">static METAL_FUNC constexpr void load_safe(thread frag_type &dst, SrcPtrType src, StrX str_x, StrY str_y, LimX lim_x, LimY lim_y, OffX off_x=Int< 0 >{}, OffY off_y=Int< 0 >{})</div><div class="ttdef"><b>Definition</b> mma.h:93</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_base_m_m_a_frag_html_adbb262a3c872e26533b68a39db16459e"><div class="ttname"><a href="structmlx_1_1steel_1_1_base_m_m_a_frag.html#adbb262a3c872e26533b68a39db16459e">mlx::steel::BaseMMAFrag< T, 8, 8 >::col_frag_type</a></div><div class="ttdeci">metal::vec< T, kElemCols > col_frag_type</div><div class="ttdef"><b>Definition</b> mma.h:63</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a0461451ffb5041b6a916ea17ed34288b"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a0461451ffb5041b6a916ea17ed34288b">mlx::steel::BlockMMA::store_result</a></div><div class="ttdeci">METAL_FUNC void store_result(device U *D, const int ldd)</div><div class="ttdef"><b>Definition</b> mma.h:536</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a081ba538d30d1d02498a7f341e6bd611"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a081ba538d30d1d02498a7f341e6bd611">mlx::steel::BlockMMA::store_result_safe</a></div><div class="ttdeci">METAL_FUNC void store_result_safe(device U *D, const int ldd, short2 dst_tile_dims)</div><div class="ttdef"><b>Definition</b> mma.h:550</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a138ed1bbad2ca88d3a3c7d162cd36562"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562">mlx::steel::BlockMMA::As_offset</a></div><div class="ttdeci">short As_offset</div><div class="ttdef"><b>Definition</b> mma.h:485</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a21b0c40d16eced109bd3196186170bc6"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a21b0c40d16eced109bd3196186170bc6">mlx::steel::BlockMMA::Ctile</a></div><div class="ttdeci">MMATile< AccumType, TM, TN, MMAFrag_acc_t > Ctile</div><div class="ttdef"><b>Definition</b> mma.h:479</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a257287702dc849d0d8a078fced453142"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a257287702dc849d0d8a078fced453142">mlx::steel::BlockMMA::A_str_k</a></div><div class="ttdeci">STEEL_CONST short A_str_k</div><div class="ttdef"><b>Definition</b> mma.h:466</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a44fca27c821764317263047a780977b0"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a44fca27c821764317263047a780977b0">mlx::steel::BlockMMA::Btile</a></div><div class="ttdeci">MMATile< AccumType, 1, TN, MMAFrag_acc_t > Btile</div><div class="ttdef"><b>Definition</b> mma.h:478</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a47e614120c650f7479db79f23a0df586"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a47e614120c650f7479db79f23a0df586">mlx::steel::BlockMMA::Atile</a></div><div class="ttdeci">MMATile< AccumType, TM, 1, MMAFrag_acc_t > Atile</div><div class="ttdef"><b>Definition</b> mma.h:477</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a49538190209e522ddbef45fe95563d17"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a49538190209e522ddbef45fe95563d17">mlx::steel::BlockMMA::B_str_n</a></div><div class="ttdeci">STEEL_CONST short B_str_n</div><div class="ttdef"><b>Definition</b> mma.h:470</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a5b0029866f493363942133b55bff7307"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307">mlx::steel::BlockMMA::TM_stride</a></div><div class="ttdeci">STEEL_CONST short TM_stride</div><div class="ttdef"><b>Definition</b> mma.h:455</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a138ed1bbad2ca88d3a3c7d162cd36562"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::As_offset</a></div><div class="ttdeci">short As_offset</div><div class="ttdef"><b>Definition</b> mma.h:485</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a21b0c40d16eced109bd3196186170bc6"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a21b0c40d16eced109bd3196186170bc6">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::Ctile</a></div><div class="ttdeci">MMATile< AccumType, TM, TN, MMAFrag_acc_t > Ctile</div><div class="ttdef"><b>Definition</b> mma.h:479</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a257287702dc849d0d8a078fced453142"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a257287702dc849d0d8a078fced453142">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::A_str_k</a></div><div class="ttdeci">STEEL_CONST short A_str_k</div><div class="ttdef"><b>Definition</b> mma.h:466</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a44fca27c821764317263047a780977b0"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a44fca27c821764317263047a780977b0">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::Btile</a></div><div class="ttdeci">MMATile< AccumType, 1, TN, MMAFrag_acc_t > Btile</div><div class="ttdef"><b>Definition</b> mma.h:478</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a47e614120c650f7479db79f23a0df586"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a47e614120c650f7479db79f23a0df586">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::Atile</a></div><div class="ttdeci">MMATile< AccumType, TM, 1, MMAFrag_acc_t > Atile</div><div class="ttdef"><b>Definition</b> mma.h:477</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a49538190209e522ddbef45fe95563d17"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a49538190209e522ddbef45fe95563d17">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::B_str_n</a></div><div class="ttdeci">STEEL_CONST short B_str_n</div><div class="ttdef"><b>Definition</b> mma.h:470</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a5b0029866f493363942133b55bff7307"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::TM_stride</a></div><div class="ttdeci">STEEL_CONST short TM_stride</div><div class="ttdef"><b>Definition</b> mma.h:455</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a6a2c2a6d5e767d52c41b42a9d36086b0"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a6a2c2a6d5e767d52c41b42a9d36086b0">mlx::steel::BlockMMA::mma</a></div><div class="ttdeci">METAL_FUNC void mma(const threadgroup T *As, const threadgroup T *Bs)</div><div class="ttdef"><b>Definition</b> mma.h:509</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a706ae779c1f8d2eb18f19c248567d424"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424">mlx::steel::BlockMMA::TN</a></div><div class="ttdeci">STEEL_CONST short TN</div><div class="ttdef"><b>Definition</b> mma.h:462</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a706ae779c1f8d2eb18f19c248567d424"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::TN</a></div><div class="ttdeci">STEEL_CONST short TN</div><div class="ttdef"><b>Definition</b> mma.h:462</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a7b324c992750ed3aaa4c485f15b2f391"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a7b324c992750ed3aaa4c485f15b2f391">mlx::steel::BlockMMA::store_result_safe</a></div><div class="ttdeci">METAL_FUNC void store_result_safe(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const Epilogue &epilogue_op) const</div><div class="ttdef"><b>Definition</b> mma.h:683</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a7cf757e9785e23997b1417e024559ed3"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a7cf757e9785e23997b1417e024559ed3">mlx::steel::BlockMMA::store_result</a></div><div class="ttdeci">METAL_FUNC void store_result(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, thread const Epilogue &epilogue_op) const</div><div class="ttdef"><b>Definition</b> mma.h:651</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a823c56cbd2086f10272df7284a5247ae"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a823c56cbd2086f10272df7284a5247ae">mlx::steel::BlockMMA::apply_epilogue</a></div><div class="ttdeci">METAL_FUNC void apply_epilogue(const device U *C, const int ldc, const int fdc, thread const BinaryEpilogue &epilogue_op)</div><div class="ttdef"><b>Definition</b> mma.h:579</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a8b3690b383afd26563efb38f9c375e50"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50">mlx::steel::BlockMMA::TN_stride</a></div><div class="ttdeci">STEEL_CONST short TN_stride</div><div class="ttdef"><b>Definition</b> mma.h:457</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a8fddaa78913cdc8eea5e1cf7d2776330"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330">mlx::steel::BlockMMA::tile_stride_a</a></div><div class="ttdeci">STEEL_CONST short tile_stride_a</div><div class="ttdef"><b>Definition</b> mma.h:473</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a92f6aeee432f53638447eac842f43eca"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca">mlx::steel::BlockMMA::Bs_offset</a></div><div class="ttdeci">short Bs_offset</div><div class="ttdef"><b>Definition</b> mma.h:486</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a8b3690b383afd26563efb38f9c375e50"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::TN_stride</a></div><div class="ttdeci">STEEL_CONST short TN_stride</div><div class="ttdef"><b>Definition</b> mma.h:457</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a8fddaa78913cdc8eea5e1cf7d2776330"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::tile_stride_a</a></div><div class="ttdeci">STEEL_CONST short tile_stride_a</div><div class="ttdef"><b>Definition</b> mma.h:473</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a92f6aeee432f53638447eac842f43eca"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::Bs_offset</a></div><div class="ttdeci">short Bs_offset</div><div class="ttdef"><b>Definition</b> mma.h:486</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_a9e48f2d51099ec00171506724faab54a"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a">mlx::steel::BlockMMA::apply_epilogue_safe</a></div><div class="ttdeci">METAL_FUNC void apply_epilogue_safe(const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const BinaryEpilogue &epilogue_op)</div><div class="ttdef"><b>Definition</b> mma.h:607</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aa14406b7298456ac45d23dd3c4642dd8"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aa14406b7298456ac45d23dd3c4642dd8">mlx::steel::BlockMMA::BlockMMA</a></div><div class="ttdeci">METAL_FUNC BlockMMA(ushort simd_group_id, ushort simd_lane_id)</div><div class="ttdef"><b>Definition</b> mma.h:489</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aa71400922babd388177f228c2c82b211"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aa71400922babd388177f228c2c82b211">mlx::steel::BlockMMA::B_str_k</a></div><div class="ttdeci">STEEL_CONST short B_str_k</div><div class="ttdef"><b>Definition</b> mma.h:469</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aa85451edf6900fd6af164d4d50889ae3"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3">mlx::steel::BlockMMA::sm</a></div><div class="ttdeci">short sm</div><div class="ttdef"><b>Definition</b> mma.h:482</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ab9c7f5386594497f5f4df7e59670b877"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ab9c7f5386594497f5f4df7e59670b877">mlx::steel::BlockMMA::A_str_m</a></div><div class="ttdeci">STEEL_CONST short A_str_m</div><div class="ttdef"><b>Definition</b> mma.h:465</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aba5f749fdf32d8bd9d9e29f2a9ae4591"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591">mlx::steel::BlockMMA::TM</a></div><div class="ttdeci">STEEL_CONST short TM</div><div class="ttdef"><b>Definition</b> mma.h:460</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ade420e8b811d597345783c324c23a34a"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a">mlx::steel::BlockMMA::sn</a></div><div class="ttdeci">short sn</div><div class="ttdef"><b>Definition</b> mma.h:483</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ae3f35453b3afbaac9df64ad5966b34a4"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4">mlx::steel::BlockMMA::tile_stride_b</a></div><div class="ttdeci">STEEL_CONST short tile_stride_b</div><div class="ttdef"><b>Definition</b> mma.h:474</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aee8caec45c1f9e4428586effbfe6137d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d">mlx::steel::BlockMMA::kFragSize</a></div><div class="ttdeci">STEEL_CONST short kFragSize</div><div class="ttdef"><b>Definition</b> mma.h:451</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aa71400922babd388177f228c2c82b211"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aa71400922babd388177f228c2c82b211">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::B_str_k</a></div><div class="ttdeci">STEEL_CONST short B_str_k</div><div class="ttdef"><b>Definition</b> mma.h:469</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aa85451edf6900fd6af164d4d50889ae3"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::sm</a></div><div class="ttdeci">short sm</div><div class="ttdef"><b>Definition</b> mma.h:482</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ab9c7f5386594497f5f4df7e59670b877"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ab9c7f5386594497f5f4df7e59670b877">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::A_str_m</a></div><div class="ttdeci">STEEL_CONST short A_str_m</div><div class="ttdef"><b>Definition</b> mma.h:465</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aba5f749fdf32d8bd9d9e29f2a9ae4591"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::TM</a></div><div class="ttdeci">STEEL_CONST short TM</div><div class="ttdef"><b>Definition</b> mma.h:460</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ade420e8b811d597345783c324c23a34a"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::sn</a></div><div class="ttdeci">short sn</div><div class="ttdef"><b>Definition</b> mma.h:483</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ae2c42cb6d0dde785859164c195f4d13c"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ae2c42cb6d0dde785859164c195f4d13c">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::MMAFrag_acc_t</a></div><div class="ttdeci">BaseMMAFrag< AccumType, kFragSize, kFragSize > MMAFrag_acc_t</div><div class="ttdef"><b>Definition</b> mma.h:452</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_ae3f35453b3afbaac9df64ad5966b34a4"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::tile_stride_b</a></div><div class="ttdeci">STEEL_CONST short tile_stride_b</div><div class="ttdef"><b>Definition</b> mma.h:474</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_aee8caec45c1f9e4428586effbfe6137d"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#aee8caec45c1f9e4428586effbfe6137d">mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue >::kFragSize</a></div><div class="ttdeci">STEEL_CONST short kFragSize</div><div class="ttdef"><b>Definition</b> mma.h:451</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_m_m_a_html_af653c0808ba4fa9a25286f1febb7baff"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_m_m_a.html#af653c0808ba4fa9a25286f1febb7baff">mlx::steel::BlockMMA::apply_epilogue</a></div><div class="ttdeci">METAL_FUNC void apply_epilogue(thread const UnaryEpilogue &epilogue_op)</div><div class="ttdef"><b>Definition</b> mma.h:569</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_layout2_d_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_layout2_d.html">mlx::steel::Layout2D</a></div><div class="ttdef"><b>Definition</b> mma.h:31</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_layout2_d_html_a23183747ab1ddbdd3f1fcac6d0faa2cd"><div class="ttname"><a href="structmlx_1_1steel_1_1_layout2_d.html#a23183747ab1ddbdd3f1fcac6d0faa2cd">mlx::steel::Layout2D::shape</a></div><div class="ttdeci">Shape shape</div><div class="ttdef"><b>Definition</b> mma.h:32</div></div>
|
||||
@@ -953,9 +975,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a5b1d1c85a5046108a4e38bdc5a0ea74e"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a5b1d1c85a5046108a4e38bdc5a0ea74e">mlx::steel::MMATile::kRowsPerThread</a></div><div class="ttdeci">STEEL_CONST int kRowsPerThread</div><div class="ttdef"><b>Definition</b> mma.h:239</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a60ea6b8ff2923b7fe6f598e74ac54323"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a60ea6b8ff2923b7fe6f598e74ac54323">mlx::steel::MMATile::kRows</a></div><div class="ttdeci">STEEL_CONST int kRows</div><div class="ttdef"><b>Definition</b> mma.h:233</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a684e6c6d9f00f583994285b60aaa3b62"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a684e6c6d9f00f583994285b60aaa3b62">mlx::steel::MMATile::val_frags</a></div><div class="ttdeci">frag_type val_frags[kNumFrags]</div><div class="ttdef"><b>Definition</b> mma.h:245</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a6dadcd666afb3759a11094e754560dd4"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a6dadcd666afb3759a11094e754560dd4">mlx::steel::MMATile::MMAFrag_t</a></div><div class="ttdeci">MMAFrag_ MMAFrag_t</div><div class="ttdef"><b>Definition</b> mma.h:224</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a752f708e4fe5ef37fdd902dae153179f"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a752f708e4fe5ef37fdd902dae153179f">mlx::steel::MMATile::store</a></div><div class="ttdeci">METAL_FUNC void store(device U *dst, const int ld) const</div><div class="ttdef"><b>Definition</b> mma.h:357</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a824409bc107330805853f932e80a7628"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a824409bc107330805853f932e80a7628">mlx::steel::MMATile::elem_type</a></div><div class="ttdeci">T elem_type</div><div class="ttdef"><b>Definition</b> mma.h:225</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a80078f0dfa4c225e79d9b460202d5e2c"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a80078f0dfa4c225e79d9b460202d5e2c">mlx::steel::MMATile::elem_type</a></div><div class="ttdeci">T elem_type</div><div class="ttdef"><b>Definition</b> mma.h:225</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a865ece5ad0b9a56937b6d77a18b5a1dc"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a865ece5ad0b9a56937b6d77a18b5a1dc">mlx::steel::MMATile::elems</a></div><div class="ttdeci">METAL_FUNC thread elem_type * elems()</div><div class="ttdef"><b>Definition</b> mma.h:275</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a948784652e93830887ee8ad506ec3257"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a948784652e93830887ee8ad506ec3257">mlx::steel::MMATile::kCols</a></div><div class="ttdeci">STEEL_CONST int kCols</div><div class="ttdef"><b>Definition</b> mma.h:234</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_a98357339ec98f804a1b12597937b318f"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#a98357339ec98f804a1b12597937b318f">mlx::steel::MMATile::kElemsPerTile</a></div><div class="ttdeci">STEEL_CONST int kElemsPerTile</div><div class="ttdef"><b>Definition</b> mma.h:237</div></div>
|
||||
@@ -966,21 +987,23 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_aa97a98e423827a889c13a92217626ec7"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#aa97a98e423827a889c13a92217626ec7">mlx::steel::MMATile::clear</a></div><div class="ttdeci">METAL_FUNC constexpr void clear()</div><div class="ttdef"><b>Definition</b> mma.h:249</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_aa9e484d8cae936503898d5b772c573f9"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#aa9e484d8cae936503898d5b772c573f9">mlx::steel::MMATile::load</a></div><div class="ttdeci">METAL_FUNC void load(const device U *src, const int ld)</div><div class="ttdef"><b>Definition</b> mma.h:342</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_aac25cd0a9bdf24aa2af809c95f0bd171"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#aac25cd0a9bdf24aa2af809c95f0bd171">mlx::steel::MMATile::frag_type</a></div><div class="ttdeci">MMAFrag_t::frag_type frag_type</div><div class="ttdef"><b>Definition</b> mma.h:243</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_abe33de70e34300745bad9aa822fd0382"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#abe33de70e34300745bad9aa822fd0382">mlx::steel::MMATile::MMAFrag_t</a></div><div class="ttdeci">MMAFrag_ MMAFrag_t</div><div class="ttdef"><b>Definition</b> mma.h:224</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_ad095371db98e7c335ec41ca77c10f906"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad095371db98e7c335ec41ca77c10f906">mlx::steel::MMATile::kFragCols</a></div><div class="ttdeci">STEEL_CONST int kFragCols</div><div class="ttdef"><b>Definition</b> mma.h:227</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_ad476e1d9a12178fb35c207312339e485"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#ad476e1d9a12178fb35c207312339e485">mlx::steel::MMATile::frag_at</a></div><div class="ttdeci">METAL_FUNC constexpr const thread frag_type & frag_at(const short i, const short j) const</div><div class="ttdef"><b>Definition</b> mma.h:260</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_ae21bb7cce701290de84c6015e064d8a1"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#ae21bb7cce701290de84c6015e064d8a1">mlx::steel::MMATile::elems</a></div><div class="ttdeci">METAL_FUNC const thread elem_type * elems() const</div><div class="ttdef"><b>Definition</b> mma.h:279</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_ae326e7693eb77c22d5a6e3e9219019d3"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#ae326e7693eb77c22d5a6e3e9219019d3">mlx::steel::MMATile::kNumFrags</a></div><div class="ttdeci">STEEL_CONST int kNumFrags</div><div class="ttdef"><b>Definition</b> mma.h:236</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_m_m_a_tile_html_aef0ea2387e1ff5767bff8563b2d36bd6"><div class="ttname"><a href="structmlx_1_1steel_1_1_m_m_a_tile.html#aef0ea2387e1ff5767bff8563b2d36bd6">mlx::steel::MMATile::kElemsPerFrag</a></div><div class="ttdeci">STEEL_CONST int kElemsPerFrag</div><div class="ttdef"><b>Definition</b> mma.h:228</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_shape2_d_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_shape2_d.html">mlx::steel::Shape2D</a></div><div class="ttdef"><b>Definition</b> mma.h:23</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_shape2_d_html_a070ce70eb6d84361c7f313159c438a5c"><div class="ttname"><a href="structmlx_1_1steel_1_1_shape2_d.html#a070ce70eb6d84361c7f313159c438a5c">mlx::steel::Shape2D::Shape2D</a></div><div class="ttdeci">Shape2D(RInt r_, CInt c_)</div><div class="ttdef"><b>Definition</b> mma.h:27</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_shape2_d_html_a6e9e8d56782fc8772bc432c7f58393fe"><div class="ttname"><a href="structmlx_1_1steel_1_1_shape2_d.html#a6e9e8d56782fc8772bc432c7f58393fe">mlx::steel::Shape2D::r</a></div><div class="ttdeci">RInt r</div><div class="ttdef"><b>Definition</b> mma.h:24</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_shape2_d_html_ae51347b2131647f2ed735ed43840d26e"><div class="ttname"><a href="structmlx_1_1steel_1_1_shape2_d.html#ae51347b2131647f2ed735ed43840d26e">mlx::steel::Shape2D::c</a></div><div class="ttdeci">CInt c</div><div class="ttdef"><b>Definition</b> mma.h:25</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1integral__constant_html"><div class="ttname"><a href="structmlx_1_1steel_1_1integral__constant.html">mlx::steel::integral_constant</a></div><div class="ttdef"><b>Definition</b> integral_constant.h:18</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2mma_8h.html">mma.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/params.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_2params_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -110,10 +124,13 @@ Namespaces</h2></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2params_8h.html">params.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
var attn_2params_8h =
|
||||
[
|
||||
[ "mlx::steel::AttnParams", "structmlx_1_1steel_1_1_attn_params.html", "structmlx_1_1steel_1_1_attn_params" ]
|
||||
];
|
||||
+52
-34
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/params.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_2params_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">params.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -94,11 +108,11 @@ $(function(){ initResizable(false); });
|
||||
<a href="attn_2params_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright © 2024 Apple Inc.</span></div>
|
||||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">// Attn param classes</span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx.html">mlx</a> {</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">namespace </span>steel {</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="foldopen" id="foldopen00012" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html"> 12</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_attn_params.html">AttnParams</a> {</div>
|
||||
@@ -118,21 +132,20 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#a4cfd2ccb0fd7eb81c2a781a0614fdcbe"> 26</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#a4cfd2ccb0fd7eb81c2a781a0614fdcbe">NQ_aligned</a>; </div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#aaf953954274794cfcb4e35e82d681b58"> 27</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#aaf953954274794cfcb4e35e82d681b58">NK_aligned</a>; </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#a90bba215328201a37eb1c430ce9f8563"> 29</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#a90bba215328201a37eb1c430ce9f8563">Q_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#a03e5480d1cca6af541be54a8720e9974"> 30</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#a03e5480d1cca6af541be54a8720e9974">K_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#acc4860c3ce09c7230b470182ed002d3c"> 31</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#acc4860c3ce09c7230b470182ed002d3c">V_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#a33dc7fc22d2604a73af9f94eeea45bb4"> 32</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#a33dc7fc22d2604a73af9f94eeea45bb4">O_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#a9150df3fb79de521bbccf57c43f6b092"> 29</a></span> int64_t <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#a9150df3fb79de521bbccf57c43f6b092">Q_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#af71b762aa702a3ee592d2098a14b74a9"> 30</a></span> int64_t <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#af71b762aa702a3ee592d2098a14b74a9">K_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#ad1495980297901b8ded1fb6dd73979b1"> 31</a></span> int64_t <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#ad1495980297901b8ded1fb6dd73979b1">V_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_attn_params.html#ab210f29dcc3a732aba34894cd5a42cf7"> 32</a></span> int64_t <a class="code hl_variable" href="structmlx_1_1steel_1_1_attn_params.html#ab210f29dcc3a732aba34894cd5a42cf7">O_strides</a>[3]; </div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>} <span class="comment">// namespace steel</span></div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>} <span class="comment">// namespace mlx</span></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
|
||||
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html">mlx::steel::AttnParams</a></div><div class="ttdef"><b>Definition</b> params.h:12</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a03e5480d1cca6af541be54a8720e9974"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a03e5480d1cca6af541be54a8720e9974">mlx::steel::AttnParams::K_strides</a></div><div class="ttdeci">size_t K_strides[3]</div><div class="ttdoc">Key strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:30</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a07ae31628e43e09bce533c7682c8dae3"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a07ae31628e43e09bce533c7682c8dae3">mlx::steel::AttnParams::D</a></div><div class="ttdeci">int D</div><div class="ttdoc">Head Dim.</div><div class="ttdef"><b>Definition</b> params.h:15</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a1cba7fedbd02e157922619195997cf4f"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a1cba7fedbd02e157922619195997cf4f">mlx::steel::AttnParams::B</a></div><div class="ttdeci">int B</div><div class="ttdoc">Batch Size.</div><div class="ttdef"><b>Definition</b> params.h:13</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a33dc7fc22d2604a73af9f94eeea45bb4"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a33dc7fc22d2604a73af9f94eeea45bb4">mlx::steel::AttnParams::O_strides</a></div><div class="ttdeci">size_t O_strides[3]</div><div class="ttdoc">Output strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:32</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a3b3e18cb993ab24819c852bc64288841"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a3b3e18cb993ab24819c852bc64288841">mlx::steel::AttnParams::gqa_factor</a></div><div class="ttdeci">int gqa_factor</div><div class="ttdoc">Group Query factor.</div><div class="ttdef"><b>Definition</b> params.h:20</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a3d286a0c27bace6016ed7a87f43291b7"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a3d286a0c27bace6016ed7a87f43291b7">mlx::steel::AttnParams::H</a></div><div class="ttdeci">int H</div><div class="ttdoc">Heads.</div><div class="ttdef"><b>Definition</b> params.h:14</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a48575afc94ab9ff74deaba61464e57a1"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a48575afc94ab9ff74deaba61464e57a1">mlx::steel::AttnParams::NQ</a></div><div class="ttdeci">int NQ</div><div class="ttdoc">Number of query blocks.</div><div class="ttdef"><b>Definition</b> params.h:23</div></div>
|
||||
@@ -140,15 +153,20 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a4cfd2ccb0fd7eb81c2a781a0614fdcbe"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a4cfd2ccb0fd7eb81c2a781a0614fdcbe">mlx::steel::AttnParams::NQ_aligned</a></div><div class="ttdeci">int NQ_aligned</div><div class="ttdoc">Number of full query blocks.</div><div class="ttdef"><b>Definition</b> params.h:26</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a59255882cbd78bb6f15e704e3a356a7f"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a59255882cbd78bb6f15e704e3a356a7f">mlx::steel::AttnParams::qL</a></div><div class="ttdeci">int qL</div><div class="ttdoc">Query Sequence Length.</div><div class="ttdef"><b>Definition</b> params.h:17</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a68a66e3fafa922dcfd1ab1f6bdc2375e"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a68a66e3fafa922dcfd1ab1f6bdc2375e">mlx::steel::AttnParams::NK</a></div><div class="ttdeci">int NK</div><div class="ttdoc">Number of key/value blocks.</div><div class="ttdef"><b>Definition</b> params.h:24</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a90bba215328201a37eb1c430ce9f8563"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a90bba215328201a37eb1c430ce9f8563">mlx::steel::AttnParams::Q_strides</a></div><div class="ttdeci">size_t Q_strides[3]</div><div class="ttdoc">Query strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:29</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_a9150df3fb79de521bbccf57c43f6b092"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#a9150df3fb79de521bbccf57c43f6b092">mlx::steel::AttnParams::Q_strides</a></div><div class="ttdeci">int64_t Q_strides[3]</div><div class="ttdoc">Query strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:29</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_aaf953954274794cfcb4e35e82d681b58"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#aaf953954274794cfcb4e35e82d681b58">mlx::steel::AttnParams::NK_aligned</a></div><div class="ttdeci">int NK_aligned</div><div class="ttdoc">Number of full key/value blocks.</div><div class="ttdef"><b>Definition</b> params.h:27</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_acc4860c3ce09c7230b470182ed002d3c"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#acc4860c3ce09c7230b470182ed002d3c">mlx::steel::AttnParams::V_strides</a></div><div class="ttdeci">size_t V_strides[3]</div><div class="ttdoc">Value strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:31</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_ab210f29dcc3a732aba34894cd5a42cf7"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#ab210f29dcc3a732aba34894cd5a42cf7">mlx::steel::AttnParams::O_strides</a></div><div class="ttdeci">int64_t O_strides[3]</div><div class="ttdoc">Output strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:32</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_ad1495980297901b8ded1fb6dd73979b1"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#ad1495980297901b8ded1fb6dd73979b1">mlx::steel::AttnParams::V_strides</a></div><div class="ttdeci">int64_t V_strides[3]</div><div class="ttdoc">Value strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:31</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_ad81bcd32e6ff8fec0000eca505fb6826"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#ad81bcd32e6ff8fec0000eca505fb6826">mlx::steel::AttnParams::scale</a></div><div class="ttdeci">float scale</div><div class="ttdoc">Attention scale.</div><div class="ttdef"><b>Definition</b> params.h:21</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_attn_params_html_af71b762aa702a3ee592d2098a14b74a9"><div class="ttname"><a href="structmlx_1_1steel_1_1_attn_params.html#af71b762aa702a3ee592d2098a14b74a9">mlx::steel::AttnParams::K_strides</a></div><div class="ttdeci">int64_t K_strides[3]</div><div class="ttdoc">Key strides (B, H, L, D = 1)</div><div class="ttdef"><b>Definition</b> params.h:30</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_2params_8h.html">params.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/attn.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -118,10 +132,13 @@ Namespaces</h2></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_8h.html">attn.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
var attn_8h =
|
||||
[
|
||||
[ "mlx::steel::LoopAlignment< M_aligned, N_aligned, K_aligned >", "structmlx_1_1steel_1_1_loop_alignment.html", null ],
|
||||
[ "mlx::steel::GEMMKernel< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, MN_aligned, K_aligned, AccumType, Epilogue >", "structmlx_1_1steel_1_1_g_e_m_m_kernel.html", "structmlx_1_1steel_1_1_g_e_m_m_kernel" ]
|
||||
];
|
||||
Vendored
+57
-36
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/attn.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('attn_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">attn.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -103,12 +117,12 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include "<a class="code" href="backend_2metal_2kernels_2steel_2utils_8h.html">mlx/backend/metal/kernels/steel/utils.h</a>"</span></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacemetal.html">metal</a>;</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">// GEMM kernel class</span></div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx.html">mlx</a> {</div>
|
||||
<div class="foldopen" id="foldopen00019" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="namespacemlx_1_1steel.html"> 19</a></span><span class="keyword">namespace </span>steel {</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="namespacemlx_1_1steel.html"> 19</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span> <<span class="keywordtype">bool</span> M_aligned, <span class="keywordtype">bool</span> N_aligned, <span class="keywordtype">bool</span> K_aligned></div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_loop_alignment.html">LoopAlignment</a> {};</div>
|
||||
@@ -138,21 +152,21 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64"> 47</a></span> <a class="code hl_define" href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a> <span class="keywordtype">short</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64">tgp_size</a> = WM * WN * 32;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a98b6ec692580510081e2aa887a61944b"> 49</a></span> <span class="keyword">using </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">loader_a_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">BlockLoader</a><</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83"> 49</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83">loader_a_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">BlockLoader</a><</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> T,</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> transpose_a ? BK : BM,</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> transpose_a ? BM : BK,</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> transpose_a ? BM + <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0">tgp_padding_a</a> : BK + <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0">tgp_padding_a</a>,</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> !transpose_a,</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64">tgp_size</a>>;</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1a115d5af0fb6e260165adba2e377635"> 56</a></span> <span class="keyword">using </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">loader_b_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">BlockLoader</a><</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395"> 56</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395">loader_b_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">BlockLoader</a><</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> T,</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> transpose_b ? BN : BK,</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> transpose_b ? BK : BN,</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> transpose_b ? BK + <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094">tgp_padding_b</a> : BN + <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094">tgp_padding_b</a>,</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> transpose_b,</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64">tgp_size</a>>;</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ae52eb09c9478cd4f199662346ac0c83e"> 63</a></span> <span class="keyword">using </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_block_m_m_a.html">mma_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_m_m_a.html">BlockMMA</a><</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782"> 63</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782">mma_t</a> = <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_m_m_a.html">BlockMMA</a><</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> T,</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> U,</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> BM,</div>
|
||||
@@ -174,9 +188,9 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> threadgroup T* As [[threadgroup(0)]],</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> threadgroup T* Bs [[threadgroup(1)]],</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">const</span> <span class="keywordtype">int</span> gemm_k_iterations,</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> thread <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">loader_a_t</a>& loader_a,</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> thread <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">loader_b_t</a>& loader_b,</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> thread <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_m_m_a.html">mma_t</a>& mma_op,</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83">loader_a_t</a>& loader_a,</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395">loader_b_t</a>& loader_b,</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782">mma_t</a>& mma_op,</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> thread <span class="keyword">const</span> <span class="keywordtype">short</span>& tgp_bm,</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> thread <span class="keyword">const</span> <span class="keywordtype">short</span>& tgp_bn,</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> thread <span class="keyword">const</span> <span class="keywordtype">short</span>& lbk,</div>
|
||||
@@ -268,14 +282,14 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> D += c_row_long * params->ldd + c_col_long;</div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// Prepare threadgroup loading operations</span></div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> thread <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">loader_a_t</a> loader_a(A, params->lda, As, simd_group_id, simd_lane_id);</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> thread <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_loader.html">loader_b_t</a> loader_b(B, params->ldb, Bs, simd_group_id, simd_lane_id);</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83">loader_a_t</a> loader_a(A, params->lda, As, simd_group_id, simd_lane_id);</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395">loader_b_t</a> loader_b(B, params->ldb, Bs, simd_group_id, simd_lane_id);</div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// Prepare threadgroup mma operation</span></div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> thread <a class="code hl_struct" href="structmlx_1_1steel_1_1_block_m_m_a.html">mma_t</a> mma_op(simd_group_id, simd_lane_id);</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> thread <a class="code hl_typedef" href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782">mma_t</a> mma_op(simd_group_id, simd_lane_id);</div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">int</span> gemm_k_iterations = params->gemm_k_iterations_aligned;</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span></div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// MNK aligned loop</span></div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span> (MN_aligned) {</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = 0; k < gemm_k_iterations; k++) {</div>
|
||||
@@ -397,6 +411,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="agemm_2params_8h_html"><div class="ttname"><a href="gemm_2params_8h.html">params.h</a></div></div>
|
||||
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
|
||||
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html_ae52abf69e7ba6af1a73d65d57182ed26"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">mlx::steel::AccumHelper::accum_type</a></div><div class="ttdeci">float accum_type</div><div class="ttdef"><b>Definition</b> transforms.h:57</div></div>
|
||||
@@ -408,17 +423,23 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_a1ec583584e69dcbbb72106390a4fc5da"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da">mlx::steel::GEMMKernel::tgp_mem_size</a></div><div class="ttdeci">STEEL_CONST short tgp_mem_size</div><div class="ttdef"><b>Definition</b> attn.h:45</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_a756d7bbcc96e2919cd65eec4bc135780"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a756d7bbcc96e2919cd65eec4bc135780">mlx::steel::GEMMKernel::gemm_loop</a></div><div class="ttdeci">static METAL_FUNC void gemm_loop(threadgroup T *As, threadgroup T *Bs, const int gemm_k_iterations, thread loader_a_t &loader_a, thread loader_b_t &loader_b, thread mma_t &mma_op, thread const short &tgp_bm, thread const short &tgp_bn, thread const short &lbk, LoopAlignment< M_aligned, N_aligned, K_aligned_ > l={})</div><div class="ttdef"><b>Definition</b> attn.h:80</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_a9058ddb73e30e83fb9c548ba22817d64"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64">mlx::steel::GEMMKernel::tgp_size</a></div><div class="ttdeci">STEEL_CONST short tgp_size</div><div class="ttdef"><b>Definition</b> attn.h:47</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_aa8a04ed74d2259f99b337d4662c64d83"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa8a04ed74d2259f99b337d4662c64d83">mlx::steel::GEMMKernel::loader_a_t</a></div><div class="ttdeci">BlockLoader< T, transpose_a ? BK :BM, transpose_a ? BM :BK, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, !transpose_a, tgp_size > loader_a_t</div><div class="ttdef"><b>Definition</b> attn.h:49</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_aa98f32278b5fd98c93ae5483c3596395"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#aa98f32278b5fd98c93ae5483c3596395">mlx::steel::GEMMKernel::loader_b_t</a></div><div class="ttdeci">BlockLoader< T, transpose_b ? BN :BK, transpose_b ? BK :BN, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, transpose_b, tgp_size > loader_b_t</div><div class="ttdef"><b>Definition</b> attn.h:56</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_ac00b149d76a903c2f91b0f477dc5037f"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f">mlx::steel::GEMMKernel::tgp_mem_size_a</a></div><div class="ttdeci">STEEL_CONST short tgp_mem_size_a</div><div class="ttdef"><b>Definition</b> attn.h:41</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_ad1b03941e869017558423c08b08bc094"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094">mlx::steel::GEMMKernel::tgp_padding_b</a></div><div class="ttdeci">STEEL_CONST short tgp_padding_b</div><div class="ttdef"><b>Definition</b> attn.h:40</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_ad547704ccbff6c2076abeffa6628c5a0"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0">mlx::steel::GEMMKernel::tgp_padding_a</a></div><div class="ttdeci">STEEL_CONST short tgp_padding_a</div><div class="ttdef"><b>Definition</b> attn.h:39</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_kernel_html_add8c6a31011a4895667c2a94a5af3782"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_kernel.html#add8c6a31011a4895667c2a94a5af3782">mlx::steel::GEMMKernel::mma_t</a></div><div class="ttdeci">BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, transpose_a ? BM+tgp_padding_a :BK+tgp_padding_a, transpose_b ? BK+tgp_padding_b :BN+tgp_padding_b, AccumType, Epilogue > mma_t</div><div class="ttdef"><b>Definition</b> attn.h:63</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_g_e_m_m_params_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_g_e_m_m_params.html">mlx::steel::GEMMParams</a></div><div class="ttdef"><b>Definition</b> params.h:12</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_loop_alignment_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_loop_alignment.html">mlx::steel::LoopAlignment</a></div><div class="ttdef"><b>Definition</b> gemm.h:21</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html">mlx::steel::TransformNone</a></div><div class="ttdef"><b>Definition</b> transforms.h:15</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="attn_8h.html">attn.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/accelerate/utils.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2accelerate_2utils_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
@@ -112,10 +126,13 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:a7a4193f37b1de9c33c31d1da09c77edb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li><li class="navelem"><a class="el" href="backend_2accelerate_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
var backend_2accelerate_2utils_8h =
|
||||
[
|
||||
[ "mlx::core::to_bnns_dtype", "namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb", null ]
|
||||
];
|
||||
+47
-30
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/accelerate/utils.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2accelerate_2utils_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">utils.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -127,17 +141,20 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_ad527b86818823db040195785efd7d724"><div class="ttname"><a href="namespacemlx_1_1core.html#ad527b86818823db040195785efd7d724">mlx::core::kindof</a></div><div class="ttdeci">Dtype::Kind kindof(const Dtype &t)</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_add4794cc0ffe5d717fc146084a235d95"><div class="ttname"><a href="namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95">mlx::core::size_of</a></div><div class="ttdeci">uint8_t size_of(const Dtype &t)</div><div class="ttdef"><b>Definition</b> dtype.h:102</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html">mlx::core::Dtype</a></div><div class="ttdef"><b>Definition</b> dtype.h:13</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">mlx::core::Dtype::Kind::c</a></div><div class="ttdeci">@ c</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">mlx::core::Dtype::Kind::V</a></div><div class="ttdeci">@ V</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">mlx::core::Dtype::Kind::u</a></div><div class="ttdeci">@ u</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">mlx::core::Dtype::Kind::i</a></div><div class="ttdeci">@ i</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">mlx::core::Dtype::Kind::f</a></div><div class="ttdeci">@ f</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">mlx::core::Dtype::Kind::b</a></div><div class="ttdeci">@ b</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a4a8a08f09d37b73795649038408b5f33">mlx::core::Dtype::Kind::c</a></div><div class="ttdeci">@ c</div><div class="ttdef"><b>Definition</b> dtype.h:35</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a5206560a306a2e085a437fd258eb57ce">mlx::core::Dtype::Kind::V</a></div><div class="ttdeci">@ V</div><div class="ttdef"><b>Definition</b> dtype.h:36</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a7b774effe4a349c6dd82ad4f4f21d34c">mlx::core::Dtype::Kind::u</a></div><div class="ttdeci">@ u</div><div class="ttdef"><b>Definition</b> dtype.h:32</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a865c0c0b4ab0e063e5caa3387c1a8741">mlx::core::Dtype::Kind::i</a></div><div class="ttdeci">@ i</div><div class="ttdef"><b>Definition</b> dtype.h:33</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a8fa14cdd754f91cc6554c9e71929cce7">mlx::core::Dtype::Kind::f</a></div><div class="ttdeci">@ f</div><div class="ttdef"><b>Definition</b> dtype.h:34</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_dtype_html_adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f"><div class="ttname"><a href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715a92eb5ffee6ae2fec3ad71c777531578f">mlx::core::Dtype::Kind::b</a></div><div class="ttdeci">@ b</div><div class="ttdef"><b>Definition</b> dtype.h:31</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_86b95e7b1d0d6e25466bb9213752d32f.html">accelerate</a></li><li class="navelem"><a class="el" href="backend_2accelerate_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/common/load.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2common_2load_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
@@ -112,10 +126,13 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:a954de19249da7c1fa39b89bdc47368aa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2load_8h.html">load.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
var backend_2common_2load_8h =
|
||||
[
|
||||
[ "mlx::core::load", "namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa", null ]
|
||||
];
|
||||
+42
-25
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/common/load.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2common_2load_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">load.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -106,15 +120,18 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span>} <span class="comment">// namespace mlx::core</span></div>
|
||||
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:23</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
|
||||
<div class="ttc" id="aio_2load_8h_html"><div class="ttname"><a href="io_2load_8h.html">load.h</a></div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a954de19249da7c1fa39b89bdc47368aa"><div class="ttname"><a href="namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa">mlx::core::load</a></div><div class="ttdeci">void load(array &out, size_t offset, const std::shared_ptr< io::Reader > &reader, bool swap_endianess)</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2load_8h.html">load.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/common/ops.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2common_2ops_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -243,10 +257,13 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:ad0ff3975e4c96317df1a2de0f7a30c1d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2ops_8h.html">ops.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
var backend_2common_2ops_8h =
|
||||
[
|
||||
[ "mlx::core::detail::IntOrFloat", "unionmlx_1_1core_1_1detail_1_1_int_or_float.html", "unionmlx_1_1core_1_1detail_1_1_int_or_float" ],
|
||||
[ "mlx::core::detail::Abs", "structmlx_1_1core_1_1detail_1_1_abs.html", "structmlx_1_1core_1_1detail_1_1_abs" ],
|
||||
[ "mlx::core::detail::ArcCos", "structmlx_1_1core_1_1detail_1_1_arc_cos.html", "structmlx_1_1core_1_1detail_1_1_arc_cos" ],
|
||||
[ "mlx::core::detail::ArcCosh", "structmlx_1_1core_1_1detail_1_1_arc_cosh.html", "structmlx_1_1core_1_1detail_1_1_arc_cosh" ],
|
||||
[ "mlx::core::detail::ArcSin", "structmlx_1_1core_1_1detail_1_1_arc_sin.html", "structmlx_1_1core_1_1detail_1_1_arc_sin" ],
|
||||
[ "mlx::core::detail::ArcSinh", "structmlx_1_1core_1_1detail_1_1_arc_sinh.html", "structmlx_1_1core_1_1detail_1_1_arc_sinh" ],
|
||||
[ "mlx::core::detail::ArcTan", "structmlx_1_1core_1_1detail_1_1_arc_tan.html", "structmlx_1_1core_1_1detail_1_1_arc_tan" ],
|
||||
[ "mlx::core::detail::ArcTan2", "structmlx_1_1core_1_1detail_1_1_arc_tan2.html", "structmlx_1_1core_1_1detail_1_1_arc_tan2" ],
|
||||
[ "mlx::core::detail::ArcTanh", "structmlx_1_1core_1_1detail_1_1_arc_tanh.html", "structmlx_1_1core_1_1detail_1_1_arc_tanh" ],
|
||||
[ "mlx::core::detail::Ceil", "structmlx_1_1core_1_1detail_1_1_ceil.html", "structmlx_1_1core_1_1detail_1_1_ceil" ],
|
||||
[ "mlx::core::detail::Conjugate", "structmlx_1_1core_1_1detail_1_1_conjugate.html", "structmlx_1_1core_1_1detail_1_1_conjugate" ],
|
||||
[ "mlx::core::detail::Cos", "structmlx_1_1core_1_1detail_1_1_cos.html", "structmlx_1_1core_1_1detail_1_1_cos" ],
|
||||
[ "mlx::core::detail::Cosh", "structmlx_1_1core_1_1detail_1_1_cosh.html", "structmlx_1_1core_1_1detail_1_1_cosh" ],
|
||||
[ "mlx::core::detail::Erf", "structmlx_1_1core_1_1detail_1_1_erf.html", "structmlx_1_1core_1_1detail_1_1_erf" ],
|
||||
[ "mlx::core::detail::ErfInv", "structmlx_1_1core_1_1detail_1_1_erf_inv.html", "structmlx_1_1core_1_1detail_1_1_erf_inv" ],
|
||||
[ "mlx::core::detail::Exp", "structmlx_1_1core_1_1detail_1_1_exp.html", "structmlx_1_1core_1_1detail_1_1_exp" ],
|
||||
[ "mlx::core::detail::Expm1", "structmlx_1_1core_1_1detail_1_1_expm1.html", "structmlx_1_1core_1_1detail_1_1_expm1" ],
|
||||
[ "mlx::core::detail::Floor", "structmlx_1_1core_1_1detail_1_1_floor.html", "structmlx_1_1core_1_1detail_1_1_floor" ],
|
||||
[ "mlx::core::detail::Imag", "structmlx_1_1core_1_1detail_1_1_imag.html", "structmlx_1_1core_1_1detail_1_1_imag" ],
|
||||
[ "mlx::core::detail::Log", "structmlx_1_1core_1_1detail_1_1_log.html", "structmlx_1_1core_1_1detail_1_1_log" ],
|
||||
[ "mlx::core::detail::Log2", "structmlx_1_1core_1_1detail_1_1_log2.html", "structmlx_1_1core_1_1detail_1_1_log2" ],
|
||||
[ "mlx::core::detail::Log10", "structmlx_1_1core_1_1detail_1_1_log10.html", "structmlx_1_1core_1_1detail_1_1_log10" ],
|
||||
[ "mlx::core::detail::Log1p", "structmlx_1_1core_1_1detail_1_1_log1p.html", "structmlx_1_1core_1_1detail_1_1_log1p" ],
|
||||
[ "mlx::core::detail::LogicalNot", "structmlx_1_1core_1_1detail_1_1_logical_not.html", "structmlx_1_1core_1_1detail_1_1_logical_not" ],
|
||||
[ "mlx::core::detail::Negative", "structmlx_1_1core_1_1detail_1_1_negative.html", "structmlx_1_1core_1_1detail_1_1_negative" ],
|
||||
[ "mlx::core::detail::Real", "structmlx_1_1core_1_1detail_1_1_real.html", "structmlx_1_1core_1_1detail_1_1_real" ],
|
||||
[ "mlx::core::detail::Round", "structmlx_1_1core_1_1detail_1_1_round.html", "structmlx_1_1core_1_1detail_1_1_round" ],
|
||||
[ "mlx::core::detail::Sigmoid", "structmlx_1_1core_1_1detail_1_1_sigmoid.html", "structmlx_1_1core_1_1detail_1_1_sigmoid" ],
|
||||
[ "mlx::core::detail::Sign", "structmlx_1_1core_1_1detail_1_1_sign.html", "structmlx_1_1core_1_1detail_1_1_sign" ],
|
||||
[ "mlx::core::detail::Sin", "structmlx_1_1core_1_1detail_1_1_sin.html", "structmlx_1_1core_1_1detail_1_1_sin" ],
|
||||
[ "mlx::core::detail::Sinh", "structmlx_1_1core_1_1detail_1_1_sinh.html", "structmlx_1_1core_1_1detail_1_1_sinh" ],
|
||||
[ "mlx::core::detail::Square", "structmlx_1_1core_1_1detail_1_1_square.html", "structmlx_1_1core_1_1detail_1_1_square" ],
|
||||
[ "mlx::core::detail::Sqrt", "structmlx_1_1core_1_1detail_1_1_sqrt.html", "structmlx_1_1core_1_1detail_1_1_sqrt" ],
|
||||
[ "mlx::core::detail::Rsqrt", "structmlx_1_1core_1_1detail_1_1_rsqrt.html", "structmlx_1_1core_1_1detail_1_1_rsqrt" ],
|
||||
[ "mlx::core::detail::Tan", "structmlx_1_1core_1_1detail_1_1_tan.html", "structmlx_1_1core_1_1detail_1_1_tan" ],
|
||||
[ "mlx::core::detail::Tanh", "structmlx_1_1core_1_1detail_1_1_tanh.html", "structmlx_1_1core_1_1detail_1_1_tanh" ],
|
||||
[ "mlx::core::detail::Add", "structmlx_1_1core_1_1detail_1_1_add.html", "structmlx_1_1core_1_1detail_1_1_add" ],
|
||||
[ "mlx::core::detail::Divide", "structmlx_1_1core_1_1detail_1_1_divide.html", "structmlx_1_1core_1_1detail_1_1_divide" ],
|
||||
[ "mlx::core::detail::Remainder", "structmlx_1_1core_1_1detail_1_1_remainder.html", "structmlx_1_1core_1_1detail_1_1_remainder" ],
|
||||
[ "mlx::core::detail::Equal", "structmlx_1_1core_1_1detail_1_1_equal.html", "structmlx_1_1core_1_1detail_1_1_equal" ],
|
||||
[ "mlx::core::detail::NaNEqual", "structmlx_1_1core_1_1detail_1_1_na_n_equal.html", "structmlx_1_1core_1_1detail_1_1_na_n_equal" ],
|
||||
[ "mlx::core::detail::Greater", "structmlx_1_1core_1_1detail_1_1_greater.html", "structmlx_1_1core_1_1detail_1_1_greater" ],
|
||||
[ "mlx::core::detail::GreaterEqual", "structmlx_1_1core_1_1detail_1_1_greater_equal.html", "structmlx_1_1core_1_1detail_1_1_greater_equal" ],
|
||||
[ "mlx::core::detail::Less", "structmlx_1_1core_1_1detail_1_1_less.html", "structmlx_1_1core_1_1detail_1_1_less" ],
|
||||
[ "mlx::core::detail::LessEqual", "structmlx_1_1core_1_1detail_1_1_less_equal.html", "structmlx_1_1core_1_1detail_1_1_less_equal" ],
|
||||
[ "mlx::core::detail::Maximum", "structmlx_1_1core_1_1detail_1_1_maximum.html", "structmlx_1_1core_1_1detail_1_1_maximum" ],
|
||||
[ "mlx::core::detail::Minimum", "structmlx_1_1core_1_1detail_1_1_minimum.html", "structmlx_1_1core_1_1detail_1_1_minimum" ],
|
||||
[ "mlx::core::detail::LogAddExp", "structmlx_1_1core_1_1detail_1_1_log_add_exp.html", "structmlx_1_1core_1_1detail_1_1_log_add_exp" ],
|
||||
[ "mlx::core::detail::Multiply", "structmlx_1_1core_1_1detail_1_1_multiply.html", "structmlx_1_1core_1_1detail_1_1_multiply" ],
|
||||
[ "mlx::core::detail::NotEqual", "structmlx_1_1core_1_1detail_1_1_not_equal.html", "structmlx_1_1core_1_1detail_1_1_not_equal" ],
|
||||
[ "mlx::core::detail::Power", "structmlx_1_1core_1_1detail_1_1_power.html", "structmlx_1_1core_1_1detail_1_1_power" ],
|
||||
[ "mlx::core::detail::Subtract", "structmlx_1_1core_1_1detail_1_1_subtract.html", "structmlx_1_1core_1_1detail_1_1_subtract" ],
|
||||
[ "mlx::core::detail::LogicalAnd", "structmlx_1_1core_1_1detail_1_1_logical_and.html", "structmlx_1_1core_1_1detail_1_1_logical_and" ],
|
||||
[ "mlx::core::detail::LogicalOr", "structmlx_1_1core_1_1detail_1_1_logical_or.html", "structmlx_1_1core_1_1detail_1_1_logical_or" ],
|
||||
[ "mlx::core::detail::Select", "structmlx_1_1core_1_1detail_1_1_select.html", "structmlx_1_1core_1_1detail_1_1_select" ],
|
||||
[ "mlx::core::detail::BitwiseAnd", "structmlx_1_1core_1_1detail_1_1_bitwise_and.html", "structmlx_1_1core_1_1detail_1_1_bitwise_and" ],
|
||||
[ "mlx::core::detail::BitwiseOr", "structmlx_1_1core_1_1detail_1_1_bitwise_or.html", "structmlx_1_1core_1_1detail_1_1_bitwise_or" ],
|
||||
[ "mlx::core::detail::BitwiseXor", "structmlx_1_1core_1_1detail_1_1_bitwise_xor.html", "structmlx_1_1core_1_1detail_1_1_bitwise_xor" ],
|
||||
[ "mlx::core::detail::LeftShift", "structmlx_1_1core_1_1detail_1_1_left_shift.html", "structmlx_1_1core_1_1detail_1_1_left_shift" ],
|
||||
[ "mlx::core::detail::RightShift", "structmlx_1_1core_1_1detail_1_1_right_shift.html", "structmlx_1_1core_1_1detail_1_1_right_shift" ],
|
||||
[ "mlx::core::detail::fast_erf", "namespacemlx_1_1core_1_1detail.html#a90c9f6149af5adf4e2a95608d5f7b790", null ],
|
||||
[ "mlx::core::detail::fast_erfinv", "namespacemlx_1_1core_1_1detail.html#ad0ff3975e4c96317df1a2de0f7a30c1d", null ],
|
||||
[ "mlx::core::detail::fast_exp", "namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374", null ]
|
||||
];
|
||||
+299
-278
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/common/ops.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2common_2ops_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">ops.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -144,16 +158,16 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1detail.html#a90c9f6149af5adf4e2a95608d5f7b790"> 47</a></span><span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code hl_function" href="namespacemlx_1_1core_1_1detail.html#a90c9f6149af5adf4e2a95608d5f7b790">fast_erf</a>(<span class="keywordtype">float</span> a) {</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">float</span> r, s, t, <a class="code hl_variable" href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a>;</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">float</span> r, s, t, u;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> t = std::abs(a);</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> s = a * a;</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">if</span> (t > 0.927734375f) {</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// maximum error 0.99527 ulp</span></div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> r = std::fma(</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> -1.72853470e-5f, t, 3.83197126e-4f); <span class="comment">// -0x1.220000p-16,0x1.91cfb2p-12</span></div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_variable" href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a> = std::fma(</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> u = std::fma(</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> -3.88396438e-3f, t, 2.42546219e-2f); <span class="comment">// -0x1.fd1438p-9, 0x1.8d6342p-6</span></div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> r = std::fma(r, s, <a class="code hl_variable" href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a>);</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> r = std::fma(r, s, u);</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> r = std::fma(r, t, -1.06777877e-1f); <span class="comment">// -0x1.b55cb8p-4</span></div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> r = std::fma(r, t, -6.34846687e-1f); <span class="comment">// -0x1.450aa0p-1</span></div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> r = std::fma(r, t, -1.28717512e-1f); <span class="comment">// -0x1.079d0cp-3</span></div>
|
||||
@@ -826,263 +840,268 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00502" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf"> 502</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">return</span> x == y || (std::isnan(x) && std::isnan(y));</div>
|
||||
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> }</div>
|
||||
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">if</span> <span class="keyword">constexpr</span> (std::is_integral_v<T>) {</div>
|
||||
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="comment">// isnan always returns false for integers, and MSVC refuses to compile.</span></div>
|
||||
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">return</span> x == y;</div>
|
||||
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keywordflow">return</span> x == y || (std::isnan(x) && std::isnan(y));</div>
|
||||
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> }</div>
|
||||
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span>};</div>
|
||||
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> </div>
|
||||
<div class="foldopen" id="foldopen00507" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html"> 507</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater.html">Greater</a> {</div>
|
||||
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00509" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094"> 509</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">return</span> x > y;</div>
|
||||
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> }</div>
|
||||
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
|
||||
<div class="foldopen" id="foldopen00512" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html"> 512</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater.html">Greater</a> {</div>
|
||||
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00514" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094"> 514</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">return</span> x > y;</div>
|
||||
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span>};</div>
|
||||
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> </div>
|
||||
<div class="foldopen" id="foldopen00514" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html"> 514</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">GreaterEqual</a> {</div>
|
||||
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00516" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30"> 516</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">return</span> x >= y;</div>
|
||||
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> }</div>
|
||||
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> </div>
|
||||
<div class="foldopen" id="foldopen00519" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html"> 519</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">GreaterEqual</a> {</div>
|
||||
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00521" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30"> 521</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keywordflow">return</span> x >= y;</div>
|
||||
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span>};</div>
|
||||
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
|
||||
<div class="foldopen" id="foldopen00521" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html"> 521</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less.html">Less</a> {</div>
|
||||
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00523" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb"> 523</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">return</span> x < y;</div>
|
||||
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> }</div>
|
||||
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
|
||||
<div class="foldopen" id="foldopen00526" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html"> 526</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less.html">Less</a> {</div>
|
||||
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00528" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb"> 528</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keywordflow">return</span> x < y;</div>
|
||||
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span>};</div>
|
||||
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
|
||||
<div class="foldopen" id="foldopen00528" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less_equal.html"> 528</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less_equal.html">LessEqual</a> {</div>
|
||||
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00530" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7"> 530</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">return</span> x <= y;</div>
|
||||
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> }</div>
|
||||
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
|
||||
<div class="foldopen" id="foldopen00533" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less_equal.html"> 533</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_less_equal.html">LessEqual</a> {</div>
|
||||
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00535" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7"> 535</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">return</span> x <= y;</div>
|
||||
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span>};</div>
|
||||
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> </div>
|
||||
<div class="foldopen" id="foldopen00535" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html"> 535</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a> {</div>
|
||||
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00537" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a"> 537</a></span> std::enable_if_t<std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="keywordflow">return</span> (x > y) ? x : y;</div>
|
||||
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> </div>
|
||||
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
|
||||
<div class="foldopen" id="foldopen00540" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html"> 540</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a> {</div>
|
||||
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00542" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd"> 542</a></span> std::enable_if_t<!std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
|
||||
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">return</span> x;</div>
|
||||
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> }</div>
|
||||
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">return</span> (x > y) ? x : y;</div>
|
||||
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> }</div>
|
||||
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a"> 542</a></span> std::enable_if_t<std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> (x > y) ? x : y;</div>
|
||||
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span>};</div>
|
||||
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> </div>
|
||||
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00547" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd"> 547</a></span> std::enable_if_t<!std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
|
||||
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> x;</div>
|
||||
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> }</div>
|
||||
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">return</span> (x > y) ? x : y;</div>
|
||||
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> </div>
|
||||
<div class="foldopen" id="foldopen00550" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html"> 550</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a> {</div>
|
||||
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00552" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69"> 552</a></span> std::enable_if_t<std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">return</span> x < y ? x : y;</div>
|
||||
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> }</div>
|
||||
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> </div>
|
||||
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> </div>
|
||||
<div class="foldopen" id="foldopen00555" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html"> 555</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a> {</div>
|
||||
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00557" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8"> 557</a></span> std::enable_if_t<!std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
|
||||
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">return</span> x;</div>
|
||||
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> }</div>
|
||||
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">return</span> x < y ? x : y;</div>
|
||||
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
|
||||
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69"> 557</a></span> std::enable_if_t<std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> x < y ? x : y;</div>
|
||||
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span>};</div>
|
||||
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> </div>
|
||||
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00562" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8"> 562</a></span> std::enable_if_t<!std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">if</span> (std::isnan(x)) {</div>
|
||||
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">return</span> x;</div>
|
||||
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> }</div>
|
||||
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">return</span> x < y ? x : y;</div>
|
||||
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
|
||||
<div class="foldopen" id="foldopen00565" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html"> 565</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">LogAddExp</a> {</div>
|
||||
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00567" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5"> 567</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">constexpr</span> <span class="keywordtype">float</span> inf = std::numeric_limits<float>::infinity();</div>
|
||||
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keyword">auto</span> maxval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a>()(x, y);</div>
|
||||
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">auto</span> minval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a>()(x, y);</div>
|
||||
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">return</span> (minval == -inf || maxval == inf)</div>
|
||||
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> ? maxval</div>
|
||||
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> : <span class="keyword">static_cast<</span>decltype(x)<span class="keyword">></span>(</div>
|
||||
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> maxval + std::log1p(<a class="code hl_function" href="namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374">fast_exp</a>(minval - maxval)));</div>
|
||||
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> }</div>
|
||||
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span>};</div>
|
||||
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> </div>
|
||||
<div class="foldopen" id="foldopen00570" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html"> 570</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">LogAddExp</a> {</div>
|
||||
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00572" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5"> 572</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">constexpr</span> <span class="keywordtype">float</span> inf = std::numeric_limits<float>::infinity();</div>
|
||||
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">auto</span> maxval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_maximum.html">Maximum</a>()(x, y);</div>
|
||||
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keyword">auto</span> minval = <a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_minimum.html">Minimum</a>()(x, y);</div>
|
||||
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">return</span> (minval == -inf || maxval == inf)</div>
|
||||
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> ? maxval</div>
|
||||
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> : <span class="keyword">static_cast<</span>decltype(x)<span class="keyword">></span>(</div>
|
||||
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> maxval + std::log1p(<a class="code hl_function" href="namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374">fast_exp</a>(minval - maxval)));</div>
|
||||
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> </div>
|
||||
<div class="foldopen" id="foldopen00578" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html"> 578</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_multiply.html">Multiply</a> {</div>
|
||||
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00580" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1"> 580</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">return</span> x * y;</div>
|
||||
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> }</div>
|
||||
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span>};</div>
|
||||
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> </div>
|
||||
<div class="foldopen" id="foldopen00583" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html"> 583</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_multiply.html">Multiply</a> {</div>
|
||||
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00585" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1"> 585</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">return</span> x * y;</div>
|
||||
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> </div>
|
||||
<div class="foldopen" id="foldopen00585" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html"> 585</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_not_equal.html">NotEqual</a> {</div>
|
||||
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00587" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d"> 587</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">return</span> x != y;</div>
|
||||
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> }</div>
|
||||
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span>};</div>
|
||||
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> </div>
|
||||
<div class="foldopen" id="foldopen00590" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html"> 590</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_not_equal.html">NotEqual</a> {</div>
|
||||
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00592" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d"> 592</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">return</span> x != y;</div>
|
||||
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> </div>
|
||||
<div class="foldopen" id="foldopen00592" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html"> 592</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_power.html">Power</a> {</div>
|
||||
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00594" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8"> 594</a></span> std::enable_if_t<!std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
|
||||
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>);</div>
|
||||
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> }</div>
|
||||
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> </div>
|
||||
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> </div>
|
||||
<div class="foldopen" id="foldopen00597" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html"> 597</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_power.html">Power</a> {</div>
|
||||
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00599" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c"> 599</a></span> std::enable_if_t<std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
|
||||
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> T res = 1;</div>
|
||||
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
|
||||
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> & 1) {</div>
|
||||
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> res *= base;</div>
|
||||
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> }</div>
|
||||
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> >>= 1;</div>
|
||||
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> base *= base;</div>
|
||||
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> }</div>
|
||||
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">return</span> res;</div>
|
||||
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> }</div>
|
||||
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8"> 599</a></span> std::enable_if_t<!std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
|
||||
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">return</span> std::pow(base, <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>);</div>
|
||||
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span>};</div>
|
||||
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> </div>
|
||||
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00604" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c"> 604</a></span> std::enable_if_t<std::is_integral_v<T>, T> <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">operator()</a>(T base, T <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
|
||||
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> T res = 1;</div>
|
||||
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">while</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a>) {</div>
|
||||
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> & 1) {</div>
|
||||
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> res *= base;</div>
|
||||
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> }</div>
|
||||
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <a class="code hl_function" href="group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125">exp</a> >>= 1;</div>
|
||||
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> base *= base;</div>
|
||||
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> }</div>
|
||||
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keywordflow">return</span> res;</div>
|
||||
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> </div>
|
||||
<div class="foldopen" id="foldopen00612" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html"> 612</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_subtract.html">Subtract</a> {</div>
|
||||
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00614" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a"> 614</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">return</span> x - y;</div>
|
||||
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
|
||||
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span>};</div>
|
||||
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> </div>
|
||||
<div class="foldopen" id="foldopen00617" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html"> 617</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_subtract.html">Subtract</a> {</div>
|
||||
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00619" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a"> 619</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">return</span> x - y;</div>
|
||||
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> </div>
|
||||
<div class="foldopen" id="foldopen00619" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html"> 619</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_and.html">LogicalAnd</a> {</div>
|
||||
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00621" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8"> 621</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">return</span> x && y;</div>
|
||||
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> }</div>
|
||||
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span>};</div>
|
||||
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> </div>
|
||||
<div class="foldopen" id="foldopen00624" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html"> 624</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_and.html">LogicalAnd</a> {</div>
|
||||
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00626" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8"> 626</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordflow">return</span> x && y;</div>
|
||||
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> </div>
|
||||
<div class="foldopen" id="foldopen00626" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html"> 626</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_or.html">LogicalOr</a> {</div>
|
||||
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00628" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a"> 628</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">return</span> x || y;</div>
|
||||
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> }</div>
|
||||
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span>};</div>
|
||||
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> </div>
|
||||
<div class="foldopen" id="foldopen00631" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html"> 631</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_logical_or.html">LogicalOr</a> {</div>
|
||||
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00633" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a"> 633</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keywordflow">return</span> x || y;</div>
|
||||
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> </div>
|
||||
<div class="foldopen" id="foldopen00633" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html"> 633</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_select.html">Select</a> {</div>
|
||||
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00635" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb"> 635</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">operator()</a>(<span class="keywordtype">bool</span> condition, T x, T y) {</div>
|
||||
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <span class="keywordflow">return</span> condition ? x : y;</div>
|
||||
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> }</div>
|
||||
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span>};</div>
|
||||
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> </div>
|
||||
<div class="foldopen" id="foldopen00638" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html"> 638</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_select.html">Select</a> {</div>
|
||||
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00640" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb"> 640</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">operator()</a>(<span class="keywordtype">bool</span> condition, T x, T y) {</div>
|
||||
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">return</span> condition ? x : y;</div>
|
||||
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> </div>
|
||||
<div class="foldopen" id="foldopen00640" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html"> 640</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">BitwiseAnd</a> {</div>
|
||||
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00642" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700"> 642</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">return</span> x & y;</div>
|
||||
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> }</div>
|
||||
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span>};</div>
|
||||
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
|
||||
<div class="foldopen" id="foldopen00645" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html"> 645</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">BitwiseAnd</a> {</div>
|
||||
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00647" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700"> 647</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keywordflow">return</span> x & y;</div>
|
||||
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
|
||||
<div class="foldopen" id="foldopen00647" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html"> 647</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">BitwiseOr</a> {</div>
|
||||
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00649" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20"> 649</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <span class="keywordflow">return</span> x | y;</div>
|
||||
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> }</div>
|
||||
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span>};</div>
|
||||
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
|
||||
<div class="foldopen" id="foldopen00652" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html"> 652</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">BitwiseOr</a> {</div>
|
||||
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00654" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20"> 654</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">return</span> x | y;</div>
|
||||
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> </div>
|
||||
<div class="foldopen" id="foldopen00654" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html"> 654</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">BitwiseXor</a> {</div>
|
||||
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00656" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0"> 656</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">return</span> x ^ y;</div>
|
||||
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> }</div>
|
||||
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span>};</div>
|
||||
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> </div>
|
||||
<div class="foldopen" id="foldopen00659" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html"> 659</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">BitwiseXor</a> {</div>
|
||||
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00661" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0"> 661</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">return</span> x ^ y;</div>
|
||||
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> </div>
|
||||
<div class="foldopen" id="foldopen00661" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_left_shift.html"> 661</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_left_shift.html">LeftShift</a> {</div>
|
||||
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00663" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a"> 663</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">return</span> x << y;</div>
|
||||
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> }</div>
|
||||
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span>};</div>
|
||||
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> </div>
|
||||
<div class="foldopen" id="foldopen00666" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_left_shift.html"> 666</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_left_shift.html">LeftShift</a> {</div>
|
||||
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00668" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a"> 668</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="keywordflow">return</span> x << y;</div>
|
||||
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> </div>
|
||||
<div class="foldopen" id="foldopen00668" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html"> 668</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_right_shift.html">RightShift</a> {</div>
|
||||
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00670" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620"> 670</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">return</span> x >> y;</div>
|
||||
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> }</div>
|
||||
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span>};</div>
|
||||
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> </div>
|
||||
<div class="foldopen" id="foldopen00673" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html"> 673</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1detail_1_1_right_shift.html">RightShift</a> {</div>
|
||||
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00675" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620"> 675</a></span> T <a class="code hl_function" href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">operator()</a>(T x, T y) {</div>
|
||||
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">return</span> x >> y;</div>
|
||||
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> </div>
|
||||
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span>} <span class="comment">// namespace mlx::core::detail</span></div>
|
||||
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> </div>
|
||||
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span>} <span class="comment">// namespace mlx::core::detail</span></div>
|
||||
</div>
|
||||
<div class="ttc" id="agroup__ops_html_ga20a1f4270c35b0fa544f5105a87a1604"><div class="ttname"><a href="group__ops.html#ga20a1f4270c35b0fa544f5105a87a1604">mlx::core::log1p</a></div><div class="ttdeci">array log1p(const array &a, StreamOrDevice s={})</div><div class="ttdoc">Natural logarithm of one plus elements in the array: log(1 + a).</div></div>
|
||||
<div class="ttc" id="agroup__ops_html_ga54ca54f06bfb2be15b163a5209e2a0f0"><div class="ttname"><a href="group__ops.html#ga54ca54f06bfb2be15b163a5209e2a0f0">mlx::core::expm1</a></div><div class="ttdeci">array expm1(const array &a, StreamOrDevice s={})</div><div class="ttdoc">Computes the expm1 function of the elements of an array.</div></div>
|
||||
@@ -1115,12 +1134,12 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tan_html_aee87bf10c278a70ca788085d1b499afe"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tan.html#aee87bf10c278a70ca788085d1b499afe">mlx::core::detail::ArcTan::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:159</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html">mlx::core::detail::ArcTanh</a></div><div class="ttdef"><b>Definition</b> ops.h:171</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_arc_tanh_html_a601e8c52bb938eb3a616756a35419e8b"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a601e8c52bb938eb3a616756a35419e8b">mlx::core::detail::ArcTanh::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:173</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">mlx::core::detail::BitwiseAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:640</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html_ae0bed77f95fe2b2f0b594addddd04700"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">mlx::core::detail::BitwiseAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:642</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">mlx::core::detail::BitwiseOr</a></div><div class="ttdef"><b>Definition</b> ops.h:647</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html_a5ab05734c5000b454975de6647a08d20"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">mlx::core::detail::BitwiseOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:649</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">mlx::core::detail::BitwiseXor</a></div><div class="ttdef"><b>Definition</b> ops.h:654</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html_a0989e3bcd064ae06c33f660696a869a0"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">mlx::core::detail::BitwiseXor::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:656</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html">mlx::core::detail::BitwiseAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:645</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_and_html_ae0bed77f95fe2b2f0b594addddd04700"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700">mlx::core::detail::BitwiseAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:647</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html">mlx::core::detail::BitwiseOr</a></div><div class="ttdef"><b>Definition</b> ops.h:652</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_or_html_a5ab05734c5000b454975de6647a08d20"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20">mlx::core::detail::BitwiseOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:654</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html">mlx::core::detail::BitwiseXor</a></div><div class="ttdef"><b>Definition</b> ops.h:659</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_bitwise_xor_html_a0989e3bcd064ae06c33f660696a869a0"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0">mlx::core::detail::BitwiseXor::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:661</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html">mlx::core::detail::Ceil</a></div><div class="ttdef"><b>Definition</b> ops.h:178</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html_a48f00affcd5c2ea1f81d821e019fec29"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html#a48f00affcd5c2ea1f81d821e019fec29">mlx::core::detail::Ceil::operator()</a></div><div class="ttdeci">uint8_t operator()(uint8_t x)</div><div class="ttdef"><b>Definition</b> ops.h:195</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_ceil_html_a672f65e47d65e4e8d88be252bce0164b"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_ceil.html#a672f65e47d65e4e8d88be252bce0164b">mlx::core::detail::Ceil::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:180</div></div>
|
||||
@@ -1162,51 +1181,51 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html_a9b6c4c34b6594b8c413abe31f34a73df"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html#a9b6c4c34b6594b8c413abe31f34a73df">mlx::core::detail::Floor::operator()</a></div><div class="ttdeci">int8_t operator()(int8_t x)</div><div class="ttdef"><b>Definition</b> ops.h:269</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html_ac988b4f265cf46c68609c9c8787c15fb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html#ac988b4f265cf46c68609c9c8787c15fb">mlx::core::detail::Floor::operator()</a></div><div class="ttdeci">uint64_t operator()(uint64_t x)</div><div class="ttdef"><b>Definition</b> ops.h:290</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_floor_html_aca4c71204b3ceeca6329f7ea2b041f4c"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_floor.html#aca4c71204b3ceeca6329f7ea2b041f4c">mlx::core::detail::Floor::operator()</a></div><div class="ttdeci">int16_t operator()(int16_t x)</div><div class="ttdef"><b>Definition</b> ops.h:272</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">mlx::core::detail::GreaterEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:514</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html_a3b005f85522ad0e4b57044eed930ac30"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">mlx::core::detail::GreaterEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:516</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html">mlx::core::detail::Greater</a></div><div class="ttdef"><b>Definition</b> ops.h:507</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html_aa3844c2bae3c7a981739f642aa0dd094"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">mlx::core::detail::Greater::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:509</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html">mlx::core::detail::GreaterEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:519</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_equal_html_a3b005f85522ad0e4b57044eed930ac30"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30">mlx::core::detail::GreaterEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:521</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html">mlx::core::detail::Greater</a></div><div class="ttdef"><b>Definition</b> ops.h:512</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_greater_html_aa3844c2bae3c7a981739f642aa0dd094"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094">mlx::core::detail::Greater::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:514</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html">mlx::core::detail::Imag</a></div><div class="ttdef"><b>Definition</b> ops.h:298</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_imag_html_a5bd82e2185f3779e398c179d42a3e782"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782">mlx::core::detail::Imag::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:300</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html">mlx::core::detail::LeftShift</a></div><div class="ttdef"><b>Definition</b> ops.h:661</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html_a9385f580830a6ad163dd9bb8c4905e7a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">mlx::core::detail::LeftShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:663</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html">mlx::core::detail::LessEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:528</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html_a31e70f8830a07557697541301555a7a7"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">mlx::core::detail::LessEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:530</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html">mlx::core::detail::Less</a></div><div class="ttdef"><b>Definition</b> ops.h:521</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html_a0b4032dff1ad2b387745cb000aabdcbb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">mlx::core::detail::Less::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:523</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html">mlx::core::detail::LeftShift</a></div><div class="ttdef"><b>Definition</b> ops.h:666</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_left_shift_html_a9385f580830a6ad163dd9bb8c4905e7a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a">mlx::core::detail::LeftShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:668</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html">mlx::core::detail::LessEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:533</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_equal_html_a31e70f8830a07557697541301555a7a7"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7">mlx::core::detail::LessEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:535</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html">mlx::core::detail::Less</a></div><div class="ttdef"><b>Definition</b> ops.h:526</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_less_html_a0b4032dff1ad2b387745cb000aabdcbb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb">mlx::core::detail::Less::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:528</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log10_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log10.html">mlx::core::detail::Log10</a></div><div class="ttdef"><b>Definition</b> ops.h:319</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log10_html_a2633c5b772bbc9f8b66cffd4a3e01a3f"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log10.html#a2633c5b772bbc9f8b66cffd4a3e01a3f">mlx::core::detail::Log10::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:321</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log1p_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log1p.html">mlx::core::detail::Log1p</a></div><div class="ttdef"><b>Definition</b> ops.h:326</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log1p_html_a3220de8c6090c44aa2070b1fbb2dc340"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log1p.html#a3220de8c6090c44aa2070b1fbb2dc340">mlx::core::detail::Log1p::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:328</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log2_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log2.html">mlx::core::detail::Log2</a></div><div class="ttdef"><b>Definition</b> ops.h:312</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log2_html_a467bd4c995674721ff5fff6df33aead8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log2.html#a467bd4c995674721ff5fff6df33aead8">mlx::core::detail::Log2::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:314</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">mlx::core::detail::LogAddExp</a></div><div class="ttdef"><b>Definition</b> ops.h:565</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html_ad1663fd809acaa4038f90666436599e5"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">mlx::core::detail::LogAddExp::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:567</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html">mlx::core::detail::LogAddExp</a></div><div class="ttdef"><b>Definition</b> ops.h:570</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_add_exp_html_ad1663fd809acaa4038f90666436599e5"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5">mlx::core::detail::LogAddExp::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:572</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log.html">mlx::core::detail::Log</a></div><div class="ttdef"><b>Definition</b> ops.h:305</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_log_html_a0012a4e1744dbe9a28c3b5652be6e1c6"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_log.html#a0012a4e1744dbe9a28c3b5652be6e1c6">mlx::core::detail::Log::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:307</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html">mlx::core::detail::LogicalAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:619</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html_a046536c1f2f9367983f052a213d7b7d8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">mlx::core::detail::LogicalAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:621</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html">mlx::core::detail::LogicalAnd</a></div><div class="ttdef"><b>Definition</b> ops.h:624</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_and_html_a046536c1f2f9367983f052a213d7b7d8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8">mlx::core::detail::LogicalAnd::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:626</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_not_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_not.html">mlx::core::detail::LogicalNot</a></div><div class="ttdef"><b>Definition</b> ops.h:333</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_not_html_a79799668ea5c364b0b4e2bc330e76253"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_not.html#a79799668ea5c364b0b4e2bc330e76253">mlx::core::detail::LogicalNot::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:335</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html">mlx::core::detail::LogicalOr</a></div><div class="ttdef"><b>Definition</b> ops.h:626</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html_afb134dbab79307d4ba597843c61d0b1a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">mlx::core::detail::LogicalOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:628</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html">mlx::core::detail::Maximum</a></div><div class="ttdef"><b>Definition</b> ops.h:535</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_a3eb37abec8426ebc42b8c685075c523a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:537</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_af99345c7c8bc95ccab1b22c0792ac6fd"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t<!std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:542</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html">mlx::core::detail::Minimum</a></div><div class="ttdef"><b>Definition</b> ops.h:550</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_a64b2eecfbc56aaef7deb939423bac3f8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t<!std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:557</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_afca0861556416a8547dd8574528feb69"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:552</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html">mlx::core::detail::Multiply</a></div><div class="ttdef"><b>Definition</b> ops.h:578</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html_a898b090966b047723513224b8d3b22f1"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">mlx::core::detail::Multiply::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:580</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html">mlx::core::detail::LogicalOr</a></div><div class="ttdef"><b>Definition</b> ops.h:631</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_logical_or_html_afb134dbab79307d4ba597843c61d0b1a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a">mlx::core::detail::LogicalOr::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:633</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html">mlx::core::detail::Maximum</a></div><div class="ttdef"><b>Definition</b> ops.h:540</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_a3eb37abec8426ebc42b8c685075c523a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:542</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_maximum_html_af99345c7c8bc95ccab1b22c0792ac6fd"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd">mlx::core::detail::Maximum::operator()</a></div><div class="ttdeci">std::enable_if_t<!std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:547</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html">mlx::core::detail::Minimum</a></div><div class="ttdef"><b>Definition</b> ops.h:555</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_a64b2eecfbc56aaef7deb939423bac3f8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t<!std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:562</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_minimum_html_afca0861556416a8547dd8574528feb69"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69">mlx::core::detail::Minimum::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T >, T > operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:557</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html">mlx::core::detail::Multiply</a></div><div class="ttdef"><b>Definition</b> ops.h:583</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_multiply_html_a898b090966b047723513224b8d3b22f1"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1">mlx::core::detail::Multiply::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:585</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_na_n_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html">mlx::core::detail::NaNEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:500</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_na_n_equal_html_a073b20b0d8d41ec8364b7c477421b9bf"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf">mlx::core::detail::NaNEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:502</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_negative_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_negative.html">mlx::core::detail::Negative</a></div><div class="ttdef"><b>Definition</b> ops.h:340</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_negative_html_afc4595c70ef7196df374cf4b2cc5e526"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_negative.html#afc4595c70ef7196df374cf4b2cc5e526">mlx::core::detail::Negative::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:342</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html">mlx::core::detail::NotEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:585</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html_a23d662b5fd968dc17d3bee2595b5f99d"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">mlx::core::detail::NotEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:587</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html">mlx::core::detail::Power</a></div><div class="ttdef"><b>Definition</b> ops.h:592</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a2c047e1b488e6525447a224975a75db8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t<!std::is_integral_v< T >, T > operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:594</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a9967db24b8f67d54b6aa3810e274f28c"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T >, T > operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:599</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html">mlx::core::detail::NotEqual</a></div><div class="ttdef"><b>Definition</b> ops.h:590</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_not_equal_html_a23d662b5fd968dc17d3bee2595b5f99d"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d">mlx::core::detail::NotEqual::operator()</a></div><div class="ttdeci">bool operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:592</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html">mlx::core::detail::Power</a></div><div class="ttdef"><b>Definition</b> ops.h:597</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a2c047e1b488e6525447a224975a75db8"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t<!std::is_integral_v< T >, T > operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:599</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_power_html_a9967db24b8f67d54b6aa3810e274f28c"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c">mlx::core::detail::Power::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T >, T > operator()(T base, T exp)</div><div class="ttdef"><b>Definition</b> ops.h:604</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html">mlx::core::detail::Real</a></div><div class="ttdef"><b>Definition</b> ops.h:347</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_real_html_ae84a939fdb5916257a7731cda66d4d61"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61">mlx::core::detail::Real::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:349</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html">mlx::core::detail::Remainder</a></div><div class="ttdef"><b>Definition</b> ops.h:459</div></div>
|
||||
@@ -1214,15 +1233,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html_a3bdaf1095ad883ecc0fecc455f02cbf3"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html#a3bdaf1095ad883ecc0fecc455f02cbf3">mlx::core::detail::Remainder::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T > &!std::is_signed_v< T >, T > operator()(T numerator, T denominator)</div><div class="ttdef"><b>Definition</b> ops.h:461</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html_a52c3a2ba86fccb24d37d218ae8328954"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html#a52c3a2ba86fccb24d37d218ae8328954">mlx::core::detail::Remainder::operator()</a></div><div class="ttdeci">std::enable_if_t< std::is_integral_v< T > &std::is_signed_v< T >, T > operator()(T numerator, T denominator)</div><div class="ttdef"><b>Definition</b> ops.h:468</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_remainder_html_a68fe542084fb94d9a5abd740fe07832b"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_remainder.html#a68fe542084fb94d9a5abd740fe07832b">mlx::core::detail::Remainder::operator()</a></div><div class="ttdeci">complex64_t operator()(complex64_t numerator, complex64_t denominator)</div><div class="ttdef"><b>Definition</b> ops.h:488</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html">mlx::core::detail::RightShift</a></div><div class="ttdef"><b>Definition</b> ops.h:668</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html_a154528ba50e89a4c532a181f135b1620"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">mlx::core::detail::RightShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:670</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html">mlx::core::detail::RightShift</a></div><div class="ttdef"><b>Definition</b> ops.h:673</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_right_shift_html_a154528ba50e89a4c532a181f135b1620"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620">mlx::core::detail::RightShift::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:675</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html">mlx::core::detail::Round</a></div><div class="ttdef"><b>Definition</b> ops.h:354</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html_a653f29c059bbfa6192378732a8a23351"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html#a653f29c059bbfa6192378732a8a23351">mlx::core::detail::Round::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:356</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_round_html_a82a984f13568051009e257fe85227da6"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_round.html#a82a984f13568051009e257fe85227da6">mlx::core::detail::Round::operator()</a></div><div class="ttdeci">complex64_t operator()(complex64_t x)</div><div class="ttdef"><b>Definition</b> ops.h:360</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_rsqrt_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_rsqrt.html">mlx::core::detail::Rsqrt</a></div><div class="ttdef"><b>Definition</b> ops.h:424</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_rsqrt_html_a9af247be16bab83243038aac54446b79"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_rsqrt.html#a9af247be16bab83243038aac54446b79">mlx::core::detail::Rsqrt::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:426</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html">mlx::core::detail::Select</a></div><div class="ttdef"><b>Definition</b> ops.h:633</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html_a930f9da2e6b3453e04f21382435a2cfb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">mlx::core::detail::Select::operator()</a></div><div class="ttdeci">T operator()(bool condition, T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:635</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html">mlx::core::detail::Select</a></div><div class="ttdef"><b>Definition</b> ops.h:638</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_select_html_a930f9da2e6b3453e04f21382435a2cfb"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb">mlx::core::detail::Select::operator()</a></div><div class="ttdeci">T operator()(bool condition, T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:640</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html">mlx::core::detail::Sigmoid</a></div><div class="ttdef"><b>Definition</b> ops.h:365</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sigmoid_html_a64b72561bfaf758632167f00648f4c89"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89">mlx::core::detail::Sigmoid::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:367</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sign_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sign.html">mlx::core::detail::Sign</a></div><div class="ttdef"><b>Definition</b> ops.h:373</div></div>
|
||||
@@ -1240,21 +1259,23 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_sqrt_html_aa5a4830b3ef7efab20ea88a110667efd"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_sqrt.html#aa5a4830b3ef7efab20ea88a110667efd">mlx::core::detail::Sqrt::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:419</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html">mlx::core::detail::Square</a></div><div class="ttdef"><b>Definition</b> ops.h:410</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_square_html_a54e9e3c0d0896e142289e8282eab1099"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099">mlx::core::detail::Square::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:412</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html">mlx::core::detail::Subtract</a></div><div class="ttdef"><b>Definition</b> ops.h:612</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html_a72ef05830615a2d5d9662926ed82672a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">mlx::core::detail::Subtract::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:614</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html">mlx::core::detail::Subtract</a></div><div class="ttdef"><b>Definition</b> ops.h:617</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_subtract_html_a72ef05830615a2d5d9662926ed82672a"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a">mlx::core::detail::Subtract::operator()</a></div><div class="ttdeci">T operator()(T x, T y)</div><div class="ttdef"><b>Definition</b> ops.h:619</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tan_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tan.html">mlx::core::detail::Tan</a></div><div class="ttdef"><b>Definition</b> ops.h:431</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tan_html_aba397cd7ac05bbe06dfa9e3a64bdb05f"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tan.html#aba397cd7ac05bbe06dfa9e3a64bdb05f">mlx::core::detail::Tan::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:433</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tanh_html"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tanh.html">mlx::core::detail::Tanh</a></div><div class="ttdef"><b>Definition</b> ops.h:438</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1detail_1_1_tanh_html_a1749ba1edfd53095ed7d45c0e53bab61"><div class="ttname"><a href="structmlx_1_1core_1_1detail_1_1_tanh.html#a1749ba1edfd53095ed7d45c0e53bab61">mlx::core::detail::Tanh::operator()</a></div><div class="ttdeci">T operator()(T x)</div><div class="ttdef"><b>Definition</b> ops.h:440</div></div>
|
||||
<div class="ttc" id="atypes_2bf16_8h_html_aa21e554721eddcf127b7fcfa7fdc56bd"><div class="ttname"><a href="types_2bf16_8h.html#aa21e554721eddcf127b7fcfa7fdc56bd">u</a></div><div class="ttdeci">uint32_t u</div><div class="ttdef"><b>Definition</b> bf16.h:17</div></div>
|
||||
<div class="ttc" id="aunionmlx_1_1core_1_1detail_1_1_int_or_float_html"><div class="ttname"><a href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html">mlx::core::detail::IntOrFloat</a></div><div class="ttdef"><b>Definition</b> ops.h:14</div></div>
|
||||
<div class="ttc" id="aunionmlx_1_1core_1_1detail_1_1_int_or_float_html_a90bd738e3b6b96a1a67685e8ab75b7ec"><div class="ttname"><a href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html#a90bd738e3b6b96a1a67685e8ab75b7ec">mlx::core::detail::IntOrFloat::f</a></div><div class="ttdeci">float f</div><div class="ttdef"><b>Definition</b> ops.h:16</div></div>
|
||||
<div class="ttc" id="aunionmlx_1_1core_1_1detail_1_1_int_or_float_html_aa6d4b02e99df90a321e0eeeb98e71b49"><div class="ttname"><a href="unionmlx_1_1core_1_1detail_1_1_int_or_float.html#aa6d4b02e99df90a321e0eeeb98e71b49">mlx::core::detail::IntOrFloat::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition</b> ops.h:15</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2ops_8h.html">ops.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+65
-51
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/common/utils.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2common_2utils_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -102,7 +116,7 @@ $(function(){ initResizable(false); });
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html">mlx::core::ContiguousIterator< StrideT ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmlx_1_1core_1_1_contiguous_iterator.html">mlx::core::ContiguousIterator</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
@@ -114,44 +128,44 @@ Namespaces</h2></td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a77657cb50fd9392f7f4c64e43843c2b3" id="r_a77657cb50fd9392f7f4c64e43843c2b3"><td class="memTemplParams" colspan="2">template<typename StrideT > </td></tr>
|
||||
<tr class="memitem:a77657cb50fd9392f7f4c64e43843c2b3"><td class="memTemplItemLeft" align="right" valign="top">StrideT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3">mlx::core::elem_to_loc</a> (int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)</td></tr>
|
||||
<tr class="separator:a77657cb50fd9392f7f4c64e43843c2b3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad7e4f40eb351b554bbfabb6d7d600d06" id="r_ad7e4f40eb351b554bbfabb6d7d600d06"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ad7e4f40eb351b554bbfabb6d7d600d06">mlx::core::elem_to_loc</a> (int elem, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &a)</td></tr>
|
||||
<tr class="separator:ad7e4f40eb351b554bbfabb6d7d600d06"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a085379297e21d57f5b3aa38ae1c26070" id="r_a085379297e21d57f5b3aa38ae1c26070"><td class="memTemplParams" colspan="2">template<typename StrideT > </td></tr>
|
||||
<tr class="memitem:a085379297e21d57f5b3aa38ae1c26070"><td class="memTemplItemLeft" align="right" valign="top">std::vector< StrideT > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a085379297e21d57f5b3aa38ae1c26070">mlx::core::make_contiguous_strides</a> (const std::vector< int > &shape)</td></tr>
|
||||
<tr class="separator:a085379297e21d57f5b3aa38ae1c26070"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a38fe6ec5220d13d96c7dad7556d2b613" id="r_a38fe6ec5220d13d96c7dad7556d2b613"><td class="memItemLeft" align="right" valign="top">std::tuple< std::vector< int >, std::vector< std::vector< int64_t > > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">mlx::core::collapse_contiguous_dims</a> (const std::vector< int > &shape, const std::vector< std::vector< int64_t > > &strides, int64_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a38fe6ec5220d13d96c7dad7556d2b613"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af2895f9b0083efd8221275eb8cadccbe" id="r_af2895f9b0083efd8221275eb8cadccbe"><td class="memItemLeft" align="right" valign="top">std::tuple< std::vector< int >, std::vector< std::vector< size_t > > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af2895f9b0083efd8221275eb8cadccbe">mlx::core::collapse_contiguous_dims</a> (const std::vector< int > &shape, const std::vector< std::vector< size_t > > &strides, size_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:af2895f9b0083efd8221275eb8cadccbe"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a90e2b6edc0fe82230cb93f5ea39febb4" id="r_a90e2b6edc0fe82230cb93f5ea39febb4"><td class="memItemLeft" align="right" valign="top">std::tuple< std::vector< int >, std::vector< std::vector< size_t > > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a90e2b6edc0fe82230cb93f5ea39febb4">mlx::core::collapse_contiguous_dims</a> (const std::vector< <a class="el" href="classmlx_1_1core_1_1array.html">array</a> > &xs, size_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a90e2b6edc0fe82230cb93f5ea39febb4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac813412cce77fc1340dcfefc6e099276" id="r_ac813412cce77fc1340dcfefc6e099276"><td class="memTemplParams" colspan="2">template<typename... Arrays, typename = enable_for_arrays_t<Arrays...>> </td></tr>
|
||||
<tr class="memitem:a59c0af06c5325c04ad8d69563c1c6b0a" id="r_a59c0af06c5325c04ad8d69563c1c6b0a"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a">mlx::core::elem_to_loc</a> (int elem, const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &strides)</td></tr>
|
||||
<tr class="separator:a59c0af06c5325c04ad8d69563c1c6b0a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac9c19514210333346f02a4520641847f" id="r_ac9c19514210333346f02a4520641847f"><td class="memItemLeft" align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ac9c19514210333346f02a4520641847f">mlx::core::elem_to_loc</a> (int elem, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &a)</td></tr>
|
||||
<tr class="separator:ac9c19514210333346f02a4520641847f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a449ef1148816a37bbc7ffd43d3c586a0" id="r_a449ef1148816a37bbc7ffd43d3c586a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a449ef1148816a37bbc7ffd43d3c586a0">mlx::core::make_contiguous_strides</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape)</td></tr>
|
||||
<tr class="separator:a449ef1148816a37bbc7ffd43d3c586a0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4d594bb84abeff4619d1abb77b20123e" id="r_a4d594bb84abeff4619d1abb77b20123e"><td class="memItemLeft" align="right" valign="top">std::tuple< <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>, std::vector< <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">mlx::core::collapse_contiguous_dims</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape, const std::vector< <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> > &strides, int64_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a4d594bb84abeff4619d1abb77b20123e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a977c7c84de79ad67055ae2a89b7f6869" id="r_a977c7c84de79ad67055ae2a89b7f6869"><td class="memItemLeft" align="right" valign="top">std::tuple< <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>, std::vector< <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a977c7c84de79ad67055ae2a89b7f6869">mlx::core::collapse_contiguous_dims</a> (const std::vector< <a class="el" href="classmlx_1_1core_1_1array.html">array</a> > &xs, size_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a977c7c84de79ad67055ae2a89b7f6869"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac813412cce77fc1340dcfefc6e099276" id="r_ac813412cce77fc1340dcfefc6e099276"><td class="memTemplParams" colspan="2">template<typename... Arrays, typename = enable_for_arrays_t<Arrays...>> </td></tr>
|
||||
<tr class="memitem:ac813412cce77fc1340dcfefc6e099276"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276">mlx::core::collapse_contiguous_dims</a> (Arrays &&... xs)</td></tr>
|
||||
<tr class="separator:ac813412cce77fc1340dcfefc6e099276"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aab3cc7f3808934ae0727b920eba231bd" id="r_aab3cc7f3808934ae0727b920eba231bd"><td class="memItemLeft" align="right" valign="top">std::pair< std::vector< int >, std::vector< int64_t > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aab3cc7f3808934ae0727b920eba231bd">mlx::core::collapse_contiguous_dims</a> (const std::vector< int > &shape, const std::vector< int64_t > &strides, int64_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:aab3cc7f3808934ae0727b920eba231bd"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1e0cbcf109d32794ffc8efc7302ba9b0" id="r_a1e0cbcf109d32794ffc8efc7302ba9b0"><td class="memItemLeft" align="right" valign="top">std::pair< std::vector< int >, std::vector< size_t > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a1e0cbcf109d32794ffc8efc7302ba9b0">mlx::core::collapse_contiguous_dims</a> (const std::vector< int > &shape, const std::vector< size_t > &strides, size_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a1e0cbcf109d32794ffc8efc7302ba9b0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4ee50bfb240512d0c0ce151dfe2c74ef" id="r_a4ee50bfb240512d0c0ce151dfe2c74ef"><td class="memItemLeft" align="right" valign="top">std::pair< std::vector< int >, std::vector< size_t > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a4ee50bfb240512d0c0ce151dfe2c74ef">mlx::core::collapse_contiguous_dims</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &a, size_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a4ee50bfb240512d0c0ce151dfe2c74ef"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3ba20a804c306067b7023259429e0e48" id="r_a3ba20a804c306067b7023259429e0e48"><td class="memTemplParams" colspan="2">template<typename StrideT > </td></tr>
|
||||
<tr class="memitem:a3ba20a804c306067b7023259429e0e48"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a3ba20a804c306067b7023259429e0e48">mlx::core::check_contiguity</a> (const std::vector< int > &shape, const std::vector< StrideT > &strides)</td></tr>
|
||||
<tr class="separator:a3ba20a804c306067b7023259429e0e48"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a79acfa8bc30c1f213bf893b5983eb666" id="r_a79acfa8bc30c1f213bf893b5983eb666"><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>, <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a79acfa8bc30c1f213bf893b5983eb666">mlx::core::collapse_contiguous_dims</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &strides, int64_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:a79acfa8bc30c1f213bf893b5983eb666"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab607cd6974ca6606826e785807156d6a" id="r_ab607cd6974ca6606826e785807156d6a"><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>, <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ab607cd6974ca6606826e785807156d6a">mlx::core::collapse_contiguous_dims</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &a, int64_t size_cap=std::numeric_limits< int32_t ><a class="el" href="group__ops.html#ga7fed87d96cc7741d8267f4eac83f5fe7">::max</a>())</td></tr>
|
||||
<tr class="separator:ab607cd6974ca6606826e785807156d6a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab2b50a44a9d3a06282be4611f5fc7447" id="r_ab2b50a44a9d3a06282be4611f5fc7447"><td class="memItemLeft" align="right" valign="top">auto </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ab2b50a44a9d3a06282be4611f5fc7447">mlx::core::check_contiguity</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &strides)</td></tr>
|
||||
<tr class="separator:ab2b50a44a9d3a06282be4611f5fc7447"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af650e831ce21759da1ac103037d08d84" id="r_af650e831ce21759da1ac103037d08d84"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">mlx::core::is_donatable</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &in, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &out)</td></tr>
|
||||
<tr class="separator:af650e831ce21759da1ac103037d08d84"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a830a47d8a317dffb0c88e5a7afe6aee2" id="r_a830a47d8a317dffb0c88e5a7afe6aee2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2">mlx::core::move_or_copy</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &in, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &out)</td></tr>
|
||||
<tr class="separator:a830a47d8a317dffb0c88e5a7afe6aee2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aae1e770954edf1f9a35d19e0de4d857a" id="r_aae1e770954edf1f9a35d19e0de4d857a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aae1e770954edf1f9a35d19e0de4d857a">mlx::core::move_or_copy</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &in, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &out, const std::vector< size_t > &strides, <a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html">array::Flags</a> flags, size_t data_size, size_t offset=0)</td></tr>
|
||||
<tr class="separator:aae1e770954edf1f9a35d19e0de4d857a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9fcb3711b150cb65c7778a35c51284b2" id="r_a9fcb3711b150cb65c7778a35c51284b2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a9fcb3711b150cb65c7778a35c51284b2">mlx::core::move_or_copy</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &in, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &out, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &strides, <a class="el" href="structmlx_1_1core_1_1array_1_1_flags.html">array::Flags</a> flags, size_t data_size, size_t offset=0)</td></tr>
|
||||
<tr class="separator:a9fcb3711b150cb65c7778a35c51284b2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6783cfc7dbe1a116ba84a3904a37145f" id="r_a6783cfc7dbe1a116ba84a3904a37145f"><td class="memItemLeft" align="right" valign="top">std::pair< bool, <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a6783cfc7dbe1a116ba84a3904a37145f">mlx::core::prepare_reshape</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &in, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &out)</td></tr>
|
||||
<tr class="separator:a6783cfc7dbe1a116ba84a3904a37145f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a88d88987bd8bf3ca46bf3b5e8aacce9d" id="r_a88d88987bd8bf3ca46bf3b5e8aacce9d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a88d88987bd8bf3ca46bf3b5e8aacce9d">mlx::core::shared_buffer_reshape</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &in, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &out_strides, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &out)</td></tr>
|
||||
<tr class="separator:a88d88987bd8bf3ca46bf3b5e8aacce9d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
var backend_2common_2utils_8h =
|
||||
[
|
||||
[ "mlx::core::ContiguousIterator", "structmlx_1_1core_1_1_contiguous_iterator.html", "structmlx_1_1core_1_1_contiguous_iterator" ],
|
||||
[ "mlx::core::check_contiguity", "namespacemlx_1_1core.html#ab2b50a44a9d3a06282be4611f5fc7447", null ],
|
||||
[ "mlx::core::collapse_contiguous_dims", "namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276", null ],
|
||||
[ "mlx::core::collapse_contiguous_dims", "namespacemlx_1_1core.html#ab607cd6974ca6606826e785807156d6a", null ],
|
||||
[ "mlx::core::collapse_contiguous_dims", "namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e", null ],
|
||||
[ "mlx::core::collapse_contiguous_dims", "namespacemlx_1_1core.html#a79acfa8bc30c1f213bf893b5983eb666", null ],
|
||||
[ "mlx::core::collapse_contiguous_dims", "namespacemlx_1_1core.html#a977c7c84de79ad67055ae2a89b7f6869", null ],
|
||||
[ "mlx::core::elem_to_loc", "namespacemlx_1_1core.html#ac9c19514210333346f02a4520641847f", null ],
|
||||
[ "mlx::core::elem_to_loc", "namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a", null ],
|
||||
[ "mlx::core::is_donatable", "namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84", null ],
|
||||
[ "mlx::core::make_contiguous_strides", "namespacemlx_1_1core.html#a449ef1148816a37bbc7ffd43d3c586a0", null ],
|
||||
[ "mlx::core::move_or_copy", "namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2", null ],
|
||||
[ "mlx::core::move_or_copy", "namespacemlx_1_1core.html#a9fcb3711b150cb65c7778a35c51284b2", null ],
|
||||
[ "mlx::core::prepare_reshape", "namespacemlx_1_1core.html#a6783cfc7dbe1a116ba84a3904a37145f", null ],
|
||||
[ "mlx::core::shared_buffer_reshape", "namespacemlx_1_1core.html#a88d88987bd8bf3ca46bf3b5e8aacce9d", null ]
|
||||
];
|
||||
+246
-239
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/common/utils.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2common_2utils_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">utils.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -101,244 +115,237 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1core.html">mlx::core</a> {</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">template</span> <<span class="keyword">typename</span> Str<span class="keywordtype">id</span>eT></div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">inline</span> int64_t</div>
|
||||
<div class="foldopen" id="foldopen00012" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3"> 12</a></span><span class="keyword">inline</span> StrideT <a class="code hl_function" href="namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3">elem_to_loc</a>(</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">int</span> elem,</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">const</span> std::vector<StrideT>& strides) {</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> StrideT loc = 0;</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = shape.size() - 1; i >= 0; --i) {</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">auto</span> q_and_r = ldiv(elem, shape[i]);</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> loc += q_and_r.rem * strides[i];</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> elem = q_and_r.quot;</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> }</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">return</span> loc;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>}</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a"> 12</a></span><a class="code hl_function" href="namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a">elem_to_loc</a>(<span class="keywordtype">int</span> elem, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>& strides) {</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> int64_t loc = 0;</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = shape.size() - 1; i >= 0; --i) {</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">auto</span> q_and_r = ldiv(elem, shape[i]);</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> loc += q_and_r.rem * strides[i];</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> elem = q_and_r.quot;</div>
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> }</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">return</span> loc;</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="foldopen" id="foldopen00025" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ad7e4f40eb351b554bbfabb6d7d600d06"> 25</a></span><span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3">elem_to_loc</a>(<span class="keywordtype">int</span> elem, <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& a) {</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">if</span> (a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>().<a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">row_contiguous</a>) {</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">return</span> elem;</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3">elem_to_loc</a>(elem, a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>(), a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>());</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="foldopen" id="foldopen00022" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac9c19514210333346f02a4520641847f"> 22</a></span><span class="keyword">inline</span> int64_t <a class="code hl_function" href="namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a">elem_to_loc</a>(<span class="keywordtype">int</span> elem, <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& a) {</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">if</span> (a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">flags</a>().<a class="code hl_variable" href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">row_contiguous</a>) {</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">return</span> elem;</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> }</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a">elem_to_loc</a>(elem, a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">shape</a>(), a.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">strides</a>());</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">template</span> <<span class="keyword">typename</span> Str<span class="keywordtype">id</span>eT></div>
|
||||
<div class="foldopen" id="foldopen00033" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a085379297e21d57f5b3aa38ae1c26070"> 33</a></span>std::vector<StrideT> <a class="code hl_function" href="namespacemlx_1_1core.html#a085379297e21d57f5b3aa38ae1c26070">make_contiguous_strides</a>(<span class="keyword">const</span> std::vector<int>& shape) {</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> std::vector<StrideT> strides(shape.size(), 1);</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = shape.size() - 1; i > 0; i--) {</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> strides[i - 1] = strides[i] * shape[i];</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> strides;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="foldopen" id="foldopen00029" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a449ef1148816a37bbc7ffd43d3c586a0"> 29</a></span><span class="keyword">inline</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> <a class="code hl_function" href="namespacemlx_1_1core.html#a449ef1148816a37bbc7ffd43d3c586a0">make_contiguous_strides</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape) {</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> strides(shape.size(), 1);</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = shape.size() - 1; i > 0; i--) {</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> strides[i - 1] = strides[i] * shape[i];</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> }</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> strides;</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">// Collapse dims that are contiguous to possibly route to a better kernel</span></div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">// e.g. for x = transpose(array({0, 1, 2, 3, 4, 5, 6, 7}, {2, 2, 2}), {2, 0, 1})</span></div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">// should return {{2, 4}, {{1, 2}}}.</span></div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">//</span></div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">// When multiple arrays are passed they should all have the same shape. The</span></div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">// collapsed axes are also the same so one shape is returned.</span></div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e"> 43</a></span>std::tuple<Shape, std::vector<Strides>> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape,</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">const</span> std::vector<Strides>& strides,</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> int64_t size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="foldopen" id="foldopen00048" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a977c7c84de79ad67055ae2a89b7f6869"> 48</a></span><span class="keyword">inline</span> std::tuple<Shape, std::vector<Strides>> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> std::vector<array>& xs,</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordtype">size_t</span> size_cap = std::numeric_limits<int32_t>::max()) {</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> std::vector<Strides> strides;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>& x : xs) {</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> strides.emplace_back(x.strides());</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(xs[0].shape(), strides, size_cap);</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">// Collapse dims that are contiguous to possibly route to a better kernel</span></div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">// e.g. for x = transpose(array({0, 1, 2, 3, 4, 5, 6, 7}, {2, 2, 2}), {2, 0, 1})</span></div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">// should return {{2, 4}, {{1, 2}}}.</span></div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">//</span></div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">// When multiple arrays are passed they should all have the same shape. The</span></div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">// collapsed axes are also the same so one shape is returned.</span></div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>std::tuple<std::vector<int>, std::vector<std::vector<int64_t>>></div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613"> 48</a></span><a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">const</span> std::vector<std::vector<int64_t>>& strides,</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> int64_t size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>std::tuple<std::vector<int>, std::vector<std::vector<size_t>>></div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af2895f9b0083efd8221275eb8cadccbe"> 53</a></span><a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">const</span> std::vector<std::vector<size_t>>& strides,</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">size_t</span> size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">inline</span> std::tuple<std::vector<int>, std::vector<std::vector<size_t>>></div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">template</span> <<span class="keyword">typename</span>... Arrays, <span class="keyword">typename</span> = <a class="code hl_typedef" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">enable_for_arrays_t</a><Arrays...>></div>
|
||||
<div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a90e2b6edc0fe82230cb93f5ea39febb4"> 59</a></span><a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">const</span> std::vector<array>& xs,</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">size_t</span> size_cap = std::numeric_limits<int32_t>::max()) {</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> std::vector<std::vector<size_t>> strides;</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>& x : xs) {</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> strides.emplace_back(x.strides());</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(xs[0].shape(), strides, size_cap);</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>}</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276"> 59</a></span><span class="keyword">inline</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(Arrays&&... xs) {</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> std::vector<array>{std::forward<Arrays>(xs)...});</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="keyword">template</span> <<span class="keyword">typename</span>... Arrays, <span class="keyword">typename</span> = <a class="code hl_typedef" href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">enable_for_arrays_t</a><Arrays...>></div>
|
||||
<div class="foldopen" id="foldopen00070" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ac813412cce77fc1340dcfefc6e099276"> 70</a></span><span class="keyword">inline</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(Arrays&&... xs) {</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> std::vector<array>{std::forward<Arrays>(xs)...});</div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>}</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment">// The single array version of the above.</span></div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a79acfa8bc30c1f213bf893b5983eb666"> 65</a></span>std::pair<Shape, Strides> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape,</div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>& strides,</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> int64_t size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ab607cd6974ca6606826e785807156d6a"> 69</a></span>std::pair<Shape, Strides> <a class="code hl_function" href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& a,</div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> int64_t size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||||
<div class="foldopen" id="foldopen00073" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html"> 73</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a727442ddff5fd3c3ebe09b000a01c9d3">ContiguousIterator</a> {</div>
|
||||
<div class="foldopen" id="foldopen00074" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#aad921dd422adb0a0f555e19a2f42239c"> 74</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#aad921dd422adb0a0f555e19a2f42239c">step</a>() {</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">int</span> dims = shape_.size();</div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span> (dims == 0) {</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">int</span> i = dims - 1;</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">while</span> (pos_[i] == (shape_[i] - 1) && i > 0) {</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> pos_[i] = 0;</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">loc</a> -= (shape_[i] - 1) * strides_[i];</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> i--;</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> pos_[i]++;</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">loc</a> += strides_[i];</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment">// The single array version of the above.</span></div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aab3cc7f3808934ae0727b920eba231bd"> 76</a></span>std::pair<std::vector<int>, std::vector<int64_t>> <a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">const</span> std::vector<int64_t>& strides,</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> int64_t size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a1e0cbcf109d32794ffc8efc7302ba9b0"> 80</a></span>std::pair<std::vector<int>, std::vector<size_t>> <a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">const</span> std::vector<size_t>& strides,</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">size_t</span> size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a4ee50bfb240512d0c0ce151dfe2c74ef"> 84</a></span>std::pair<std::vector<int>, std::vector<size_t>> <a class="code hl_function" href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">collapse_contiguous_dims</a>(</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& a,</div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">size_t</span> size_cap = std::numeric_limits<int32_t>::max());</div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="keyword">template</span> <<span class="keyword">typename</span> Str<span class="keywordtype">id</span>eT></div>
|
||||
<div class="foldopen" id="foldopen00089" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html"> 89</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1_contiguous_iterator.html">ContiguousIterator</a> {</div>
|
||||
<div class="foldopen" id="foldopen00090" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef"> 90</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef">step</a>() {</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">int</span> dims = shape_.size();</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">if</span> (dims == 0) {</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> }</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">int</span> i = dims - 1;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">while</span> (pos_[i] == (shape_[i] - 1) && i > 0) {</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> pos_[i] = 0;</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">loc</a> -= (shape_[i] - 1) * strides_[i];</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> i--;</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> }</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> pos_[i]++;</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">loc</a> += strides_[i];</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
|
||||
<div class="foldopen" id="foldopen00089" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#af08f009e0a72414d274db2ff1b2c7dd5"> 89</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#af08f009e0a72414d274db2ff1b2c7dd5">seek</a>(int64_t n) {</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">loc</a> = 0;</div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = shape_.size() - 1; i >= 0; --i) {</div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">auto</span> q_and_r = ldiv(n, shape_[i]);</div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">loc</a> += q_and_r.rem * strides_[i];</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> pos_[i] = q_and_r.rem;</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> n = q_and_r.quot;</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||
<div class="foldopen" id="foldopen00105" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a24719ee9e8667885d29c2ad74445520c"> 105</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a24719ee9e8667885d29c2ad74445520c">seek</a>(StrideT n) {</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">loc</a> = 0;</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = shape_.size() - 1; i >= 0; --i) {</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">auto</span> q_and_r = ldiv(n, shape_[i]);</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">loc</a> += q_and_r.rem * strides_[i];</div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> pos_[i] = q_and_r.rem;</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> n = q_and_r.quot;</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
|
||||
<div class="foldopen" id="foldopen00099" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#afa2e2bde9bfa57ac759bc7f5b881262a"> 99</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#afa2e2bde9bfa57ac759bc7f5b881262a">reset</a>() {</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">loc</a> = 0;</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> std::fill(pos_.begin(), pos_.end(), 0);</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
|
||||
<div class="foldopen" id="foldopen00115" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a56336d55be846426e9522f375fc11297"> 115</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a56336d55be846426e9522f375fc11297">reset</a>() {</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">loc</a> = 0;</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> std::fill(pos_.begin(), pos_.end(), 0);</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> }</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a727442ddff5fd3c3ebe09b000a01c9d3"> 104</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a727442ddff5fd3c3ebe09b000a01c9d3">ContiguousIterator</a>() {};</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
|
||||
<div class="foldopen" id="foldopen00106" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#aa82bec516eb54656c74fdaa74de1d735"> 106</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#aa82bec516eb54656c74fdaa74de1d735">ContiguousIterator</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& a)</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> : shape_(a.shape()), strides_(a.strides()) {</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">if</span> (!shape_.empty()) {</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> std::tie(shape_, strides_) = collapse_contiguous_dims(shape_, strides_);</div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> pos_ = Shape(shape_.size(), 0);</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> }</div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a68794af4a442d3d8ac4647817af8e1f6"> 120</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a68794af4a442d3d8ac4647817af8e1f6">ContiguousIterator</a>() {};</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
|
||||
<div class="foldopen" id="foldopen00122" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a6cb378408b6f546eeb6ade1a4faafe3c"> 122</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a6cb378408b6f546eeb6ade1a4faafe3c">ContiguousIterator</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& a)</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> : shape_(a.shape()), strides_(a.strides()) {</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (!shape_.empty()) {</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> std::tie(shape_, strides_) = collapse_contiguous_dims(shape_, strides_);</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> pos_ = std::vector<int>(shape_.size(), 0);</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
||||
<div class="foldopen" id="foldopen00114" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a8760380bff7462a886e7a4edd2955375"> 114</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a8760380bff7462a886e7a4edd2955375">ContiguousIterator</a>(</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape,</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>& strides,</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">int</span> dims)</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> : shape_(shape.begin(), shape.begin() + dims),</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> strides_(strides.begin(), strides.begin() + dims) {</div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">if</span> (!shape_.empty()) {</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> std::tie(shape_, strides_) = collapse_contiguous_dims(shape_, strides_);</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> pos_ = Shape(shape_.size(), 0);</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
|
||||
<div class="foldopen" id="foldopen00130" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a16bdacb53f65b7284068cd49d4cba292"> 130</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structmlx_1_1core_1_1_contiguous_iterator.html#a16bdacb53f65b7284068cd49d4cba292">ContiguousIterator</a>(</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">const</span> std::vector<StrideT>& strides,</div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">int</span> dims)</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> : shape_(shape.begin(), shape.begin() + dims),</div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> strides_(strides.begin(), strides.begin() + dims) {</div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span> (!shape_.empty()) {</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> std::tie(shape_, strides_) = collapse_contiguous_dims(shape_, strides_);</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> pos_ = std::vector<int>(shape_.size(), 0);</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a"> 126</a></span> int64_t <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">loc</a>{0};</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> shape_;</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> strides_;</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> pos_;</div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1"> 142</a></span> StrideT <a class="code hl_variable" href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">loc</a>{0};</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> std::vector<int> shape_;</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> std::vector<StrideT> strides_;</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> std::vector<int> pos_;</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>};</div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
|
||||
<div class="foldopen" id="foldopen00134" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#ab2b50a44a9d3a06282be4611f5fc7447"> 134</a></span><span class="keyword">inline</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core.html#ab2b50a44a9d3a06282be4611f5fc7447">check_contiguity</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a>& shape, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>& strides) {</div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">size_t</span> no_broadcast_data_size = 1;</div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> int64_t f_stride = 1;</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> int64_t b_stride = 1;</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordtype">bool</span> is_row_contiguous = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">bool</span> is_col_contiguous = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, ri = shape.size() - 1; ri >= 0; i++, ri--) {</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> is_col_contiguous &= strides[i] == f_stride || shape[i] == 1;</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> is_row_contiguous &= strides[ri] == b_stride || shape[ri] == 1;</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> f_stride *= shape[i];</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> b_stride *= shape[ri];</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">if</span> (strides[i] > 0) {</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> no_broadcast_data_size *= shape[i];</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> }</div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">return</span> std::make_tuple(</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> no_broadcast_data_size, is_row_contiguous, is_col_contiguous);</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="keyword">template</span> <<span class="keyword">typename</span> Str<span class="keywordtype">id</span>eT></div>
|
||||
<div class="foldopen" id="foldopen00151" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a3ba20a804c306067b7023259429e0e48"> 151</a></span><span class="keyword">inline</span> <span class="keyword">auto</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a3ba20a804c306067b7023259429e0e48">check_contiguity</a>(</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">const</span> std::vector<int>& shape,</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">const</span> std::vector<StrideT>& strides) {</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">size_t</span> no_broadcast_data_size = 1;</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">size_t</span> f_stride = 1;</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">size_t</span> b_stride = 1;</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordtype">bool</span> is_row_contiguous = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordtype">bool</span> is_col_contiguous = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, ri = shape.size() - 1; ri >= 0; i++, ri--) {</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> is_col_contiguous &= strides[i] == f_stride || shape[i] == 1;</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> is_row_contiguous &= strides[ri] == b_stride || shape[ri] == 1;</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> f_stride *= shape[i];</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> b_stride *= shape[ri];</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span> (strides[i] > 0) {</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> no_broadcast_data_size *= shape[i];</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> }</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> std::make_tuple(</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> no_broadcast_data_size, is_row_contiguous, is_col_contiguous);</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span>}</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
|
||||
<div class="foldopen" id="foldopen00155" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84"> 155</a></span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">is_donatable</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in, <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) {</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> donation_extra = 16384;</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> in.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>() && in.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>() == out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>() &&</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> in.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>() <= out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">nbytes</a>() + donation_extra;</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
|
||||
<div class="foldopen" id="foldopen00174" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84"> 174</a></span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">is_donatable</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in, <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out) {</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> donation_extra = 16384;</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">return</span> in.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">is_donatable</a>() && in.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>() == out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">itemsize</a>() &&</div>
|
||||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> in.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">buffer_size</a>() <= out.<a class="code hl_function" href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">nbytes</a>() + donation_extra;</div>
|
||||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
|
||||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2"> 181</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2">move_or_copy</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
||||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#aae1e770954edf1f9a35d19e0de4d857a"> 182</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2">move_or_copy</a>(</div>
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in,</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out,</div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">const</span> std::vector<size_t>& strides,</div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">array::Flags</a> flags,</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordtype">size_t</span> data_size,</div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">size_t</span> offset = 0);</div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> </div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span>} <span class="comment">// namespace mlx::core</span></div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2"> 162</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2">move_or_copy</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in, <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a9fcb3711b150cb65c7778a35c51284b2"> 163</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2">move_or_copy</a>(</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in,</div>
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out,</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>& strides,</div>
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_struct" href="structmlx_1_1core_1_1array_1_1_flags.html">array::Flags</a> flags,</div>
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">size_t</span> data_size,</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordtype">size_t</span> offset = 0);</div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a6783cfc7dbe1a116ba84a3904a37145f"> 171</a></span>std::pair<bool, Strides> <a class="code hl_function" href="namespacemlx_1_1core.html#a6783cfc7dbe1a116ba84a3904a37145f">prepare_reshape</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in, <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core.html#a88d88987bd8bf3ca46bf3b5e8aacce9d"> 173</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacemlx_1_1core.html#a88d88987bd8bf3ca46bf3b5e8aacce9d">shared_buffer_reshape</a>(</div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& in,</div>
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a>& out_strides,</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_class" href="classmlx_1_1core_1_1array.html">array</a>& out);</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>} <span class="comment">// namespace mlx::core</span></div>
|
||||
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:23</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags & flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:305</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape & shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:102</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides & strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:116</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:92</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:270</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:330</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array's datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:82</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a0a20a6065ae71b64c1e3aa22a45fd8a1"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1">mlx::core::array::flags</a></div><div class="ttdeci">const Flags & flags() const</div><div class="ttdoc">Get the Flags bit-field.</div><div class="ttdef"><b>Definition</b> array.h:306</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a1d06c76b0f3010a5c329d0e9e29e0597"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a1d06c76b0f3010a5c329d0e9e29e0597">mlx::core::array::shape</a></div><div class="ttdeci">const Shape & shape() const</div><div class="ttdoc">The shape of the array as a vector of integers.</div><div class="ttdef"><b>Definition</b> array.h:103</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a28cf1928f5ec2f972a94ff1c0e71187d"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a28cf1928f5ec2f972a94ff1c0e71187d">mlx::core::array::strides</a></div><div class="ttdeci">const Strides & strides() const</div><div class="ttdoc">The strides of the array.</div><div class="ttdef"><b>Definition</b> array.h:117</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a387b67cd3ef5cfc1e749c371766c4a05"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a387b67cd3ef5cfc1e749c371766c4a05">mlx::core::array::nbytes</a></div><div class="ttdeci">size_t nbytes() const</div><div class="ttdoc">The number of bytes in the array.</div><div class="ttdef"><b>Definition</b> array.h:93</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a4677a404b5d191af20b52649225de087"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087">mlx::core::array::is_donatable</a></div><div class="ttdeci">bool is_donatable() const</div><div class="ttdoc">True indicates the arrays buffer is safe to reuse.</div><div class="ttdef"><b>Definition</b> array.h:271</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_a914577c63755b2e862d2da68bbf8e3dd"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd">mlx::core::array::buffer_size</a></div><div class="ttdeci">size_t buffer_size() const</div><div class="ttdef"><b>Definition</b> array.h:331</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html_af329d9432c92de87cbaa2de8454eefc0"><div class="ttname"><a href="classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0">mlx::core::array::itemsize</a></div><div class="ttdeci">size_t itemsize() const</div><div class="ttdoc">The size of the array's datatype in bytes.</div><div class="ttdef"><b>Definition</b> array.h:83</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html"><div class="ttname"><a href="namespacemlx_1_1core.html">mlx::core</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a085379297e21d57f5b3aa38ae1c26070"><div class="ttname"><a href="namespacemlx_1_1core.html#a085379297e21d57f5b3aa38ae1c26070">mlx::core::make_contiguous_strides</a></div><div class="ttdeci">std::vector< StrideT > make_contiguous_strides(const std::vector< int > &shape)</div><div class="ttdef"><b>Definition</b> utils.h:33</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a38fe6ec5220d13d96c7dad7556d2b613"><div class="ttname"><a href="namespacemlx_1_1core.html#a38fe6ec5220d13d96c7dad7556d2b613">mlx::core::collapse_contiguous_dims</a></div><div class="ttdeci">std::tuple< std::vector< int >, std::vector< std::vector< int64_t > > > collapse_contiguous_dims(const std::vector< int > &shape, const std::vector< std::vector< int64_t > > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a3ba20a804c306067b7023259429e0e48"><div class="ttname"><a href="namespacemlx_1_1core.html#a3ba20a804c306067b7023259429e0e48">mlx::core::check_contiguity</a></div><div class="ttdeci">auto check_contiguity(const std::vector< int > &shape, const std::vector< StrideT > &strides)</div><div class="ttdef"><b>Definition</b> utils.h:151</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a77657cb50fd9392f7f4c64e43843c2b3"><div class="ttname"><a href="namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3">mlx::core::elem_to_loc</a></div><div class="ttdeci">StrideT elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)</div><div class="ttdef"><b>Definition</b> utils.h:12</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a449ef1148816a37bbc7ffd43d3c586a0"><div class="ttname"><a href="namespacemlx_1_1core.html#a449ef1148816a37bbc7ffd43d3c586a0">mlx::core::make_contiguous_strides</a></div><div class="ttdeci">Strides make_contiguous_strides(const Shape &shape)</div><div class="ttdef"><b>Definition</b> utils.h:29</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a4d594bb84abeff4619d1abb77b20123e"><div class="ttname"><a href="namespacemlx_1_1core.html#a4d594bb84abeff4619d1abb77b20123e">mlx::core::collapse_contiguous_dims</a></div><div class="ttdeci">std::tuple< Shape, std::vector< Strides > > collapse_contiguous_dims(const Shape &shape, const std::vector< Strides > &strides, int64_t size_cap=std::numeric_limits< int32_t >::max())</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a59c0af06c5325c04ad8d69563c1c6b0a"><div class="ttname"><a href="namespacemlx_1_1core.html#a59c0af06c5325c04ad8d69563c1c6b0a">mlx::core::elem_to_loc</a></div><div class="ttdeci">int64_t elem_to_loc(int elem, const Shape &shape, const Strides &strides)</div><div class="ttdef"><b>Definition</b> utils.h:12</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a6783cfc7dbe1a116ba84a3904a37145f"><div class="ttname"><a href="namespacemlx_1_1core.html#a6783cfc7dbe1a116ba84a3904a37145f">mlx::core::prepare_reshape</a></div><div class="ttdeci">std::pair< bool, Strides > prepare_reshape(const array &in, const array &out)</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a694e23f2d59606643728ad443d621416"><div class="ttname"><a href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">mlx::core::Shape</a></div><div class="ttdeci">std::vector< ShapeElem > Shape</div><div class="ttdef"><b>Definition</b> array.h:21</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a79939016d0972ded7db37130da2a8b5c"><div class="ttname"><a href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">mlx::core::Strides</a></div><div class="ttdeci">std::vector< int64_t > Strides</div><div class="ttdef"><b>Definition</b> array.h:22</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a830a47d8a317dffb0c88e5a7afe6aee2"><div class="ttname"><a href="namespacemlx_1_1core.html#a830a47d8a317dffb0c88e5a7afe6aee2">mlx::core::move_or_copy</a></div><div class="ttdeci">void move_or_copy(const array &in, array &out)</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_af650e831ce21759da1ac103037d08d84"><div class="ttname"><a href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">mlx::core::is_donatable</a></div><div class="ttdeci">bool is_donatable(const array &in, const array &out)</div><div class="ttdef"><b>Definition</b> utils.h:174</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t< is_arrays_v< T... > > enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:614</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html">mlx::core::ContiguousIterator</a></div><div class="ttdef"><b>Definition</b> utils.h:89</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a027b29e06d5cb467d961c019699514b1"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a027b29e06d5cb467d961c019699514b1">mlx::core::ContiguousIterator::loc</a></div><div class="ttdeci">StrideT loc</div><div class="ttdef"><b>Definition</b> utils.h:142</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a16bdacb53f65b7284068cd49d4cba292"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a16bdacb53f65b7284068cd49d4cba292">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator(const std::vector< int > &shape, const std::vector< StrideT > &strides, int dims)</div><div class="ttdef"><b>Definition</b> utils.h:130</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a24719ee9e8667885d29c2ad74445520c"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a24719ee9e8667885d29c2ad74445520c">mlx::core::ContiguousIterator::seek</a></div><div class="ttdeci">void seek(StrideT n)</div><div class="ttdef"><b>Definition</b> utils.h:105</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a56336d55be846426e9522f375fc11297"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a56336d55be846426e9522f375fc11297">mlx::core::ContiguousIterator::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition</b> utils.h:115</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a68794af4a442d3d8ac4647817af8e1f6"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a68794af4a442d3d8ac4647817af8e1f6">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator()</div><div class="ttdef"><b>Definition</b> utils.h:120</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a6cb378408b6f546eeb6ade1a4faafe3c"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a6cb378408b6f546eeb6ade1a4faafe3c">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator(const array &a)</div><div class="ttdef"><b>Definition</b> utils.h:122</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_ae230bd52b70a0bbdf560090f8a6589ef"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef">mlx::core::ContiguousIterator::step</a></div><div class="ttdeci">void step()</div><div class="ttdef"><b>Definition</b> utils.h:90</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html">mlx::core::array::Flags</a></div><div class="ttdef"><b>Definition</b> array.h:224</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html_a3170fa381dc7a90f6eabcc029bdf9bfd"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">mlx::core::array::Flags::row_contiguous</a></div><div class="ttdeci">bool row_contiguous</div><div class="ttdef"><b>Definition</b> array.h:236</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_a88d88987bd8bf3ca46bf3b5e8aacce9d"><div class="ttname"><a href="namespacemlx_1_1core.html#a88d88987bd8bf3ca46bf3b5e8aacce9d">mlx::core::shared_buffer_reshape</a></div><div class="ttdeci">void shared_buffer_reshape(const array &in, const Strides &out_strides, array &out)</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_ab2b50a44a9d3a06282be4611f5fc7447"><div class="ttname"><a href="namespacemlx_1_1core.html#ab2b50a44a9d3a06282be4611f5fc7447">mlx::core::check_contiguity</a></div><div class="ttdeci">auto check_contiguity(const Shape &shape, const Strides &strides)</div><div class="ttdef"><b>Definition</b> utils.h:134</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_af650e831ce21759da1ac103037d08d84"><div class="ttname"><a href="namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84">mlx::core::is_donatable</a></div><div class="ttdeci">bool is_donatable(const array &in, const array &out)</div><div class="ttdef"><b>Definition</b> utils.h:155</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_html_af89751d79339f3e4d9318ea97d64d114"><div class="ttname"><a href="namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114">mlx::core::enable_for_arrays_t</a></div><div class="ttdeci">typename std::enable_if_t< is_arrays_v< T... > > enable_for_arrays_t</div><div class="ttdef"><b>Definition</b> array.h:615</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a5ea4f0e40900e8c7e0830e1fb561af1a"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a5ea4f0e40900e8c7e0830e1fb561af1a">mlx::core::ContiguousIterator::loc</a></div><div class="ttdeci">int64_t loc</div><div class="ttdef"><b>Definition</b> utils.h:126</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a727442ddff5fd3c3ebe09b000a01c9d3"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a727442ddff5fd3c3ebe09b000a01c9d3">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator()</div><div class="ttdef"><b>Definition</b> utils.h:104</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_a8760380bff7462a886e7a4edd2955375"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#a8760380bff7462a886e7a4edd2955375">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator(const Shape &shape, const Strides &strides, int dims)</div><div class="ttdef"><b>Definition</b> utils.h:114</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_aa82bec516eb54656c74fdaa74de1d735"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#aa82bec516eb54656c74fdaa74de1d735">mlx::core::ContiguousIterator::ContiguousIterator</a></div><div class="ttdeci">ContiguousIterator(const array &a)</div><div class="ttdef"><b>Definition</b> utils.h:106</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_aad921dd422adb0a0f555e19a2f42239c"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#aad921dd422adb0a0f555e19a2f42239c">mlx::core::ContiguousIterator::step</a></div><div class="ttdeci">void step()</div><div class="ttdef"><b>Definition</b> utils.h:74</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_af08f009e0a72414d274db2ff1b2c7dd5"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#af08f009e0a72414d274db2ff1b2c7dd5">mlx::core::ContiguousIterator::seek</a></div><div class="ttdeci">void seek(int64_t n)</div><div class="ttdef"><b>Definition</b> utils.h:89</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_contiguous_iterator_html_afa2e2bde9bfa57ac759bc7f5b881262a"><div class="ttname"><a href="structmlx_1_1core_1_1_contiguous_iterator.html#afa2e2bde9bfa57ac759bc7f5b881262a">mlx::core::ContiguousIterator::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition</b> utils.h:99</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html">mlx::core::array::Flags</a></div><div class="ttdef"><b>Definition</b> array.h:225</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1array_1_1_flags_html_a3170fa381dc7a90f6eabcc029bdf9bfd"><div class="ttname"><a href="structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd">mlx::core::array::Flags::row_contiguous</a></div><div class="ttdeci">bool row_contiguous</div><div class="ttdef"><b>Definition</b> array.h:237</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_f149b24a1b5be11cd70151abe517e3f8.html">common</a></li><li class="navelem"><a class="el" href="backend_2common_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+43
-67
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/allocator.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2allocator_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -108,6 +122,8 @@ $(function(){ initResizable(false); });
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">mlx::core::metal::MetalAllocator</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmlx_1_1core_1_1metal_1_1_buffer.html">mlx::core::metal::Buffer</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
||||
Namespaces</h2></td></tr>
|
||||
@@ -123,54 +139,14 @@ Functions</h2></td></tr>
|
||||
<tr class="memitem:a74b3558bd518aecde6b14b0ba5e1a0d5" id="r_a74b3558bd518aecde6b14b0ba5e1a0d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">MetalAllocator</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5">mlx::core::metal::allocator</a> ()</td></tr>
|
||||
<tr class="separator:a74b3558bd518aecde6b14b0ba5e1a0d5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<h2 class="groupheader">Variable Documentation</h2>
|
||||
<a id="a15aa5cc1baf29be08d55cca88509e697" name="a15aa5cc1baf29be08d55cca88509e697"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a15aa5cc1baf29be08d55cca88509e697">◆ </a></span>buf</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">MTL::Buffer* buf</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ae704ab07eac590091daa5fc4aec7bddb" name="ae704ab07eac590091daa5fc4aec7bddb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae704ab07eac590091daa5fc4aec7bddb">◆ </a></span>next</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">BufferHolder* next</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aadb9e075b376adbd9ff6ba23663113bd" name="aadb9e075b376adbd9ff6ba23663113bd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aadb9e075b376adbd9ff6ba23663113bd">◆ </a></span>prev</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">BufferHolder* prev</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2allocator_8h.html">allocator.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
var backend_2metal_2allocator_8h =
|
||||
[
|
||||
[ "mlx::core::metal::MetalAllocator", "classmlx_1_1core_1_1metal_1_1_metal_allocator.html", "classmlx_1_1core_1_1metal_1_1_metal_allocator" ],
|
||||
[ "mlx::core::metal::Buffer", "classmlx_1_1core_1_1metal_1_1_buffer.html", "classmlx_1_1core_1_1metal_1_1_buffer" ],
|
||||
[ "mlx::core::metal::allocator", "namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5", null ]
|
||||
];
|
||||
+59
-43
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/allocator.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2allocator_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">allocator.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -116,21 +130,21 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> ~BufferCache();</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> MTL::Buffer* reuse_from_cache(<span class="keywordtype">size_t</span> size);</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">void</span> recycle_to_cache(MTL::Buffer* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">void</span> release_cached_buffers(<span class="keywordtype">size_t</span> min_bytes_to_free);</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">void</span> recycle_to_cache(MTL::Buffer* buf);</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">int</span> release_cached_buffers(<span class="keywordtype">size_t</span> min_bytes_to_free);</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">size_t</span> cache_size() {</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> pool_size_;</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> }</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> clear();</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">int</span> clear();</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">struct </span>BufferHolder {</div>
|
||||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> BufferHolder(MTL::Buffer* buf_) : <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>(buf_), <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#aadb9e075b376adbd9ff6ba23663113bd">prev</a>(<span class="keyword">nullptr</span>), <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb">next</a>(<span class="keyword">nullptr</span>) {}</div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> BufferHolder(MTL::Buffer* buf_) : buf(buf_), prev(<span class="keyword">nullptr</span>), next(<span class="keyword">nullptr</span>) {}</div>
|
||||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="backend_2metal_2allocator_8h.html#aadb9e075b376adbd9ff6ba23663113bd"> 37</a></span> BufferHolder* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#aadb9e075b376adbd9ff6ba23663113bd">prev</a>;</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb"> 38</a></span> BufferHolder* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb">next</a>;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697"> 39</a></span> MTL::Buffer* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>;</div>
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> BufferHolder* prev;</div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> BufferHolder* next;</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> MTL::Buffer* buf;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> };</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> add_at_head(BufferHolder* to_add);</div>
|
||||
@@ -147,7 +161,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>} <span class="comment">// namespace</span></div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
|
||||
<div class="foldopen" id="foldopen00055" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html"> 55</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">MetalAllocator</a> : <span class="keyword">public</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">allocator::Allocator</a> {</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html"> 55</a></span><span class="keyword">class </span>MetalAllocator : <span class="keyword">public</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_allocator.html">allocator::Allocator</a> {</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a6c0feb9b1ff9977f76c69745393944bc"> 58</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a6c0feb9b1ff9977f76c69745393944bc">malloc</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a51f6587e8065be16f0418ca42a796e05">size</a>, <span class="keywordtype">bool</span> allow_swap = <span class="keyword">false</span>) <span class="keyword">override</span>;</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a109a0a37fb0b3be381a62dc3b1a54bf0"> 59</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a109a0a37fb0b3be381a62dc3b1a54bf0">free</a>(<a class="code hl_class" href="classmlx_1_1core_1_1allocator_1_1_buffer.html">Buffer</a> buffer) <span class="keyword">override</span>;</div>
|
||||
@@ -180,8 +194,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> MTL::Device* device_;</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">MetalAllocator</a>();</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e"> 82</a></span> <span class="keyword">friend</span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">MetalAllocator</a>& <a class="code hl_friend" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e">allocator</a>();</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> MetalAllocator();</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e"> 82</a></span> <span class="keyword">friend</span> MetalAllocator& <a class="code hl_friend" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e">allocator</a>();</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Caching allocator</span></div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> BufferCache buffer_cache_;</div>
|
||||
@@ -196,19 +210,18 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">size_t</span> max_pool_size_;</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">size_t</span> wired_limit_{0};</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">bool</span> relaxed_{<span class="keyword">true</span>};</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> std::mutex mutex_;</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>};</div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">size_t</span> num_resources_{0};</div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">size_t</span> resource_limit_{0};</div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> std::mutex mutex_;</div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5"> 101</a></span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">MetalAllocator</a>& <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5">allocator</a>();</div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>} <span class="comment">// namespace mlx::core::metal</span></div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5"> 103</a></span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_metal_allocator.html">MetalAllocator</a>& <a class="code hl_function" href="namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5">allocator</a>();</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>} <span class="comment">// namespace mlx::core::metal</span></div>
|
||||
</div>
|
||||
<div class="ttc" id="aallocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div></div>
|
||||
<div class="ttc" id="abackend_2metal_2allocator_8h_html_a15aa5cc1baf29be08d55cca88509e697"><div class="ttname"><a href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a></div><div class="ttdeci">MTL::Buffer * buf</div><div class="ttdef"><b>Definition</b> allocator.h:39</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2allocator_8h_html_aadb9e075b376adbd9ff6ba23663113bd"><div class="ttname"><a href="backend_2metal_2allocator_8h.html#aadb9e075b376adbd9ff6ba23663113bd">prev</a></div><div class="ttdeci">BufferHolder * prev</div><div class="ttdef"><b>Definition</b> allocator.h:37</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2allocator_8h_html_ae704ab07eac590091daa5fc4aec7bddb"><div class="ttname"><a href="backend_2metal_2allocator_8h.html#ae704ab07eac590091daa5fc4aec7bddb">next</a></div><div class="ttdeci">BufferHolder * next</div><div class="ttdef"><b>Definition</b> allocator.h:38</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2device_8h_html"><div class="ttname"><a href="backend_2metal_2device_8h.html">device.h</a></div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_allocator_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_allocator.html">mlx::core::allocator::Allocator</a></div><div class="ttdef"><b>Definition</b> allocator.h:39</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1allocator_1_1_buffer_html"><div class="ttname"><a href="classmlx_1_1core_1_1allocator_1_1_buffer.html">mlx::core::allocator::Buffer</a></div><div class="ttdef"><b>Definition</b> allocator.h:12</div></div>
|
||||
@@ -231,10 +244,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1metal_html_a910797b74824e6ee576fbb533dee8b57"><div class="ttname"><a href="namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57">mlx::core::metal::device</a></div><div class="ttdeci">Device & device(mlx::core::Device)</div></div>
|
||||
<div class="ttc" id="aresident_8h_html"><div class="ttname"><a href="resident_8h.html">resident.h</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2allocator_8h.html">allocator.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/device.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2device_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -145,10 +159,13 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:a910797b74824e6ee576fbb533dee8b57"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2device_8h.html">device.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
var backend_2metal_2device_8h =
|
||||
[
|
||||
[ "mlx::core::metal::CommandEncoder", "structmlx_1_1core_1_1metal_1_1_command_encoder.html", "structmlx_1_1core_1_1metal_1_1_command_encoder" ],
|
||||
[ "mlx::core::metal::CommandEncoder::ConcurrentContext", "structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html", "structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context" ],
|
||||
[ "mlx::core::metal::Fence", "structmlx_1_1core_1_1metal_1_1_fence.html", "structmlx_1_1core_1_1metal_1_1_fence" ],
|
||||
[ "mlx::core::metal::DeviceStream", "structmlx_1_1core_1_1metal_1_1_device_stream.html", "structmlx_1_1core_1_1metal_1_1_device_stream" ],
|
||||
[ "mlx::core::metal::Device", "classmlx_1_1core_1_1metal_1_1_device.html", "classmlx_1_1core_1_1metal_1_1_device" ],
|
||||
[ "mlx::core::metal::MTLFCList", "namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54", null ],
|
||||
[ "mlx::core::metal::device", "namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57", null ],
|
||||
[ "mlx::core::metal::get_colocated_mtllib_path", "namespacemlx_1_1core_1_1metal.html#a5fd6ba2040e53a254b9d71ae7ebd315f", null ]
|
||||
];
|
||||
+53
-37
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/device.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2device_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">device.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -134,15 +148,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> std::vector<std::tuple<const void*, MTL::DataType, NS::UInteger>>;</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="foldopen" id="foldopen00041" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html"> 41</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> {</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html"> 41</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a> {</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3"> 42</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>(MTL::CommandBuffer* cbuf);</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14"> 43</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14">CommandEncoder</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"> 44</a></span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>& <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">operator=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14"> 43</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#ac68ca977b5bde5434284ce7979647f14">CommandEncoder</a>(<span class="keyword">const</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e"> 44</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>& <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html"> 46</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html">ConcurrentContext</a> {</div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html"> 46</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a> {</div>
|
||||
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174"> 47</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a>(<a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>& enc) : enc(enc) {</div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174"> 47</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#aee044d7729739c96e845823f9ecc5174">ConcurrentContext</a>(<a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>& enc) : enc(enc) {</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> enc.concurrent_ = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
|
||||
</div>
|
||||
@@ -156,7 +170,7 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a>& enc;</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html#a2334774486f447213ee997e55c2e52a3">CommandEncoder</a>& enc;</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> };</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||
@@ -245,7 +259,7 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
|
||||
<div class="foldopen" id="foldopen00124" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html"> 124</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_fence.html">Fence</a> {</div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html"> 124</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">Fence</a> {</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79"> 125</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">Fence</a>(MTL::Fence* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">fence</a>) {}</div>
|
||||
<div class="foldopen" id="foldopen00126" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2"> 126</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2">~Fence</a>() {</div>
|
||||
@@ -257,7 +271,7 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||
<div class="foldopen" id="foldopen00132" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html"> 132</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1metal_1_1_device_stream.html">DeviceStream</a> {</div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html"> 132</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">DeviceStream</a> {</div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7"> 133</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7">DeviceStream</a>(MTL::CommandQueue* <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>) : <a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>(<a class="code hl_variable" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d">queue</a>) {};</div>
|
||||
<div class="foldopen" id="foldopen00134" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e"> 134</a></span> <a class="code hl_function" href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e">~DeviceStream</a>() {</div>
|
||||
@@ -287,11 +301,11 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||
<div class="foldopen" id="foldopen00158" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html"> 158</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a> {</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html"> 158</a></span><span class="keyword">class </span><a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a> {</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6"> 160</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>();</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06"> 161</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">Device</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73"> 162</a></span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>& <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classmlx_1_1core_1_1metal_1_1_device.html">Device</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06"> 161</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06">Device</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73"> 162</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>& <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6">Device</a>&) = <span class="keyword">delete</span>;</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e"> 163</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e">~Device</a>();</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
|
||||
<div class="foldopen" id="foldopen00165" data-start="{" data-end="}">
|
||||
@@ -408,7 +422,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
|
||||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span>} <span class="comment">// namespace mlx::core::metal</span></div>
|
||||
<div class="ttc" id="aarray_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:23</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1array_html"><div class="ttname"><a href="classmlx_1_1core_1_1array.html">mlx::core::array</a></div><div class="ttdef"><b>Definition</b> array.h:24</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html">mlx::core::metal::Device</a></div><div class="ttdef"><b>Definition</b> device.h:158</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a03a2f0c712660a1bd437cb16e4aba79f"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f">mlx::core::metal::Device::set_residency_set</a></div><div class="ttdeci">void set_residency_set(const MTL::ResidencySet *residency_set)</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1metal_1_1_device_html_a064e1cb6a16de7a0619f6447622350f8"><div class="ttname"><a href="classmlx_1_1core_1_1metal_1_1_device.html#a064e1cb6a16de7a0619f6447622350f8">mlx::core::metal::Device::get_command_buffer_ops</a></div><div class="ttdeci">int get_command_buffer_ops(int index)</div></div>
|
||||
@@ -472,15 +486,17 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_a99183c92599edfeb75f7fa0f37e1d9eb"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb">mlx::core::metal::DeviceStream::buffer</a></div><div class="ttdeci">MTL::CommandBuffer * buffer</div><div class="ttdef"><b>Definition</b> device.h:148</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_ab6048b329e65a59033834f3bdd351782"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782">mlx::core::metal::DeviceStream::buffer_ops</a></div><div class="ttdeci">int buffer_ops</div><div class="ttdef"><b>Definition</b> device.h:149</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_device_stream_html_aee88009117dfff1ad121eabe28d5f3de"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de">mlx::core::metal::DeviceStream::temporaries</a></div><div class="ttdeci">std::vector< array > temporaries</div><div class="ttdef"><b>Definition</b> device.h:155</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html">mlx::core::metal::Fence</a></div><div class="ttdef"><b>Definition</b> device.h:124</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_a30bee4957ae595e04922952a8010fc79"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79">mlx::core::metal::Fence::Fence</a></div><div class="ttdeci">Fence(MTL::Fence *fence)</div><div class="ttdef"><b>Definition</b> device.h:125</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_a4940c1aece13814af7727de9abb511f2"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2">mlx::core::metal::Fence::~Fence</a></div><div class="ttdeci">~Fence()</div><div class="ttdef"><b>Definition</b> device.h:126</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1metal_1_1_fence_html_aeccd8f2b81418ae9fc446ae2b6e15b87"><div class="ttname"><a href="structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87">mlx::core::metal::Fence::fence</a></div><div class="ttdeci">MTL::Fence * fence</div><div class="ttdef"><b>Definition</b> device.h:129</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2device_8h.html">device.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+58
-41
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/complex.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2complex_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -131,10 +145,10 @@ Functions</h2></td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:a4f90ad54f4fae363e8d3cc41d539557b" id="r_a4f90ad54f4fae363e8d3cc41d539557b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a4f90ad54f4fae363e8d3cc41d539557b" id="r_a4f90ad54f4fae363e8d3cc41d539557b"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a4f90ad54f4fae363e8d3cc41d539557b"><td class="memTemplItemLeft" align="right" valign="top">static constexpr constant bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a4f90ad54f4fae363e8d3cc41d539557b">can_convert_to_complex64</a></td></tr>
|
||||
<tr class="separator:a4f90ad54f4fae363e8d3cc41d539557b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab149db78f6f19b8da6297dac4c36d893" id="r_ab149db78f6f19b8da6297dac4c36d893"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:ab149db78f6f19b8da6297dac4c36d893" id="r_ab149db78f6f19b8da6297dac4c36d893"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:ab149db78f6f19b8da6297dac4c36d893"><td class="memTemplItemLeft" align="right" valign="top">static constexpr constant bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ab149db78f6f19b8da6297dac4c36d893">can_convert_from_complex64</a></td></tr>
|
||||
<tr class="separator:ab149db78f6f19b8da6297dac4c36d893"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
@@ -161,7 +175,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -190,7 +204,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -219,7 +233,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -248,7 +262,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -273,7 +287,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -302,7 +316,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -331,7 +345,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -360,7 +374,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -389,7 +403,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -418,7 +432,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -447,7 +461,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -461,7 +475,7 @@ Variables</h2></td></tr>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
@@ -472,7 +486,7 @@ template<typename T > </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -488,7 +502,7 @@ template<typename T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T > </div>
|
||||
template<typename T> </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
@@ -499,7 +513,7 @@ template<typename T > </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -509,10 +523,13 @@ template<typename T > </div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2complex_8h.html">complex.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
var backend_2metal_2kernels_2complex_8h =
|
||||
[
|
||||
[ "complex64_t", "structcomplex64__t.html", "structcomplex64__t" ],
|
||||
[ "operator%", "backend_2metal_2kernels_2complex_8h.html#aaf53122a07c8eca858b5a8e38ae280e0", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2complex_8h.html#a681d4fb076973f58f7dac894ec62a385", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2complex_8h.html#ad6af5c6c5ed4898b49758618e5aee189", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2complex_8h.html#af5608264cf920688607059b4e8cd3117", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2complex_8h.html#a226cfd54d49f02e35c5aab3139c7596b", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2complex_8h.html#ae6a708f67d6fd9b0962aa8877cec6d35", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2complex_8h.html#a67674e32596a9dae2258bb8e0e6a2058", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2complex_8h.html#aee04c9a63c6716a99a027418354debb0", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2complex_8h.html#abfc19f03616441245dfc7726b278f190", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2complex_8h.html#a032a8d3eec2384c9f03066f7fd945995", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2complex_8h.html#aafbd686c180398c98b33d7643f893a46", null ],
|
||||
[ "can_convert_from_complex64", "backend_2metal_2kernels_2complex_8h.html#ab149db78f6f19b8da6297dac4c36d893", null ],
|
||||
[ "can_convert_to_complex64", "backend_2metal_2kernels_2complex_8h.html#a4f90ad54f4fae363e8d3cc41d539557b", null ]
|
||||
];
|
||||
+42
-25
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/complex.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2complex_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">complex.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -111,7 +125,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> (is_convertible_v<float, T> || is_convertible_v<bfloat16_t, T>);</div>
|
||||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
|
||||
<div class="foldopen" id="foldopen00020" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structcomplex64__t.html"> 20</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcomplex64__t.html">complex64_t</a> {</div>
|
||||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structcomplex64__t.html"> 20</a></span><span class="keyword">struct </span><a class="code hl_function" href="structcomplex64__t.html#adbd392a5e92d31997380ad0a38be4be8">complex64_t</a> {</div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="structcomplex64__t.html#abbd4a0092eca9f112c1c5ae1a133a27e"> 21</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structcomplex64__t.html#abbd4a0092eca9f112c1c5ae1a133a27e">real</a>;</div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structcomplex64__t.html#a94037c0cf8451aaff7cb4d154a8426de"> 22</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structcomplex64__t.html#a94037c0cf8451aaff7cb4d154a8426de">imag</a>;</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
@@ -280,10 +294,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructcomplex64__t_html_ac81b486f642fb3b26c5d659917bdbcd0"><div class="ttname"><a href="structcomplex64__t.html#ac81b486f642fb3b26c5d659917bdbcd0">complex64_t::complex64_t</a></div><div class="ttdeci">constexpr complex64_t(T x) device</div><div class="ttdef"><b>Definition</b> complex.h:43</div></div>
|
||||
<div class="ttc" id="astructcomplex64__t_html_adbd392a5e92d31997380ad0a38be4be8"><div class="ttname"><a href="structcomplex64__t.html#adbd392a5e92d31997380ad0a38be4be8">complex64_t::complex64_t</a></div><div class="ttdeci">constexpr complex64_t(float real, float imag)</div><div class="ttdef"><b>Definition</b> complex.h:25</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2complex_8h.html">complex.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+74
-58
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/fft.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2fft_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> |
|
||||
@@ -123,21 +137,21 @@ Functions</h2></td></tr>
|
||||
<tr class="memitem:a278d980ed397e6841ce0af44b9aa4396"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a278d980ed397e6841ce0af44b9aa4396">radix_butterfly</a> (int i, int p, thread float2 *x, thread short *indices, thread float2 *y)</td></tr>
|
||||
<tr class="separator:a278d980ed397e6841ce0af44b9aa4396"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aba8d32e0911499671df93678f39da08b" id="r_aba8d32e0911499671df93678f39da08b"><td class="memTemplParams" colspan="2">template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">RadixFunc</a> radix_func> </td></tr>
|
||||
<tr class="memitem:aba8d32e0911499671df93678f39da08b"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aba8d32e0911499671df93678f39da08b">radix_n_steps</a> (int i, thread int *p, int m, int n, int num_steps, thread float2 *inputs, thread short *indices, thread float2 *values, threadgroup float2 *<a class="el" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>)</td></tr>
|
||||
<tr class="memitem:aba8d32e0911499671df93678f39da08b"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aba8d32e0911499671df93678f39da08b">radix_n_steps</a> (int i, thread int *p, int m, int n, int num_steps, thread float2 *inputs, thread short *indices, thread float2 *values, threadgroup float2 *buf)</td></tr>
|
||||
<tr class="separator:aba8d32e0911499671df93678f39da08b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a050ead8fa5cacdaec13d68ca3c0dcb81" id="r_a050ead8fa5cacdaec13d68ca3c0dcb81"><td class="memTemplParams" colspan="2">template<bool rader = false> </td></tr>
|
||||
<tr class="memitem:a050ead8fa5cacdaec13d68ca3c0dcb81"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a> (int fft_idx, thread int *p, int m, int n, threadgroup float2 *<a class="el" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>)</td></tr>
|
||||
<tr class="memitem:a050ead8fa5cacdaec13d68ca3c0dcb81"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a> (int fft_idx, thread int *p, int m, int n, threadgroup float2 *buf)</td></tr>
|
||||
<tr class="separator:a050ead8fa5cacdaec13d68ca3c0dcb81"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4010b0e151e5f01e610e9c32234458c7" id="r_a4010b0e151e5f01e610e9c32234458c7"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T , typename out_T > </td></tr>
|
||||
<tr class="memitem:a4010b0e151e5f01e610e9c32234458c7" id="r_a4010b0e151e5f01e610e9c32234458c7"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T, typename out_T> </td></tr>
|
||||
<tr class="memitem:a4010b0e151e5f01e610e9c32234458c7"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a4010b0e151e5f01e610e9c32234458c7">fft</a> (const device in_T *in, device out_T *out, constant const int &n, constant const int &batch_size, uint3 elem, uint3 grid)</td></tr>
|
||||
<tr class="separator:a4010b0e151e5f01e610e9c32234458c7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad123452303f6415904f3592f660769b8" id="r_ad123452303f6415904f3592f660769b8"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T , typename out_T > </td></tr>
|
||||
<tr class="memitem:ad123452303f6415904f3592f660769b8" id="r_ad123452303f6415904f3592f660769b8"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T, typename out_T> </td></tr>
|
||||
<tr class="memitem:ad123452303f6415904f3592f660769b8"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ad123452303f6415904f3592f660769b8">rader_fft</a> (const device in_T *in, device out_T *out, const device float2 *raders_b_q, const device short *raders_g_q, const device short *raders_g_minus_q, constant const int &n, constant const int &batch_size, constant const int &rader_n, uint3 elem, uint3 grid)</td></tr>
|
||||
<tr class="separator:ad123452303f6415904f3592f660769b8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0abc609e9756475800e996775a96a87e" id="r_a0abc609e9756475800e996775a96a87e"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T , typename out_T > </td></tr>
|
||||
<tr class="memitem:a0abc609e9756475800e996775a96a87e" id="r_a0abc609e9756475800e996775a96a87e"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T, typename out_T> </td></tr>
|
||||
<tr class="memitem:a0abc609e9756475800e996775a96a87e"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a0abc609e9756475800e996775a96a87e">bluestein_fft</a> (const device in_T *in, device out_T *out, const device float2 *w_q, const device float2 *w_k, constant const int &length, constant const int &n, constant const int &batch_size, uint3 elem, uint3 grid)</td></tr>
|
||||
<tr class="separator:a0abc609e9756475800e996775a96a87e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6558a8205ee4c3e4767bafa93f7606de" id="r_a6558a8205ee4c3e4767bafa93f7606de"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T , typename out_T , int step, bool real = false> </td></tr>
|
||||
<tr class="memitem:a6558a8205ee4c3e4767bafa93f7606de" id="r_a6558a8205ee4c3e4767bafa93f7606de"><td class="memTemplParams" colspan="2">template<int tg_mem_size, typename in_T, typename out_T, int step, bool real = false> </td></tr>
|
||||
<tr class="memitem:a6558a8205ee4c3e4767bafa93f7606de"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a6558a8205ee4c3e4767bafa93f7606de">four_step_fft</a> (const device in_T *in, device out_T *out, constant const int &n1, constant const int &n2, constant const int &batch_size, uint3 elem, uint3 grid)</td></tr>
|
||||
<tr class="separator:a6558a8205ee4c3e4767bafa93f7606de"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
@@ -241,8 +255,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line"> <a class="code hl_function" href="#aba8d32e0911499671df93678f39da08b">radix_n_steps<radix, radix_func></a>( \</div>
|
||||
<div class="line"> fft_idx, p, m, n, num_steps, inputs, indices, values, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="ttc" id="abackend_2metal_2allocator_8h_html_a15aa5cc1baf29be08d55cca88509e697"><div class="ttname"><a href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a></div><div class="ttdeci">MTL::Buffer * buf</div><div class="ttdef"><b>Definition</b> allocator.h:39</div></div>
|
||||
<div class="line"> fft_idx, p, m, n, num_steps, inputs, indices, values, buf);</div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_aba8d32e0911499671df93678f39da08b"><div class="ttname"><a href="#aba8d32e0911499671df93678f39da08b">radix_n_steps</a></div><div class="ttdeci">METAL_FUNC void radix_n_steps(int i, thread int *p, int m, int n, int num_steps, thread float2 *inputs, thread short *indices, thread float2 *values, threadgroup float2 *buf)</div><div class="ttdef"><b>Definition</b> fft.h:100</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
@@ -269,7 +282,7 @@ Variables</h2></td></tr>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<int tg_mem_size, typename in_T , typename out_T > </div>
|
||||
template<int tg_mem_size, typename in_T, typename out_T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void bluestein_fft </td>
|
||||
@@ -327,7 +340,7 @@ template<int tg_mem_size, typename in_T , typename out_T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<int tg_mem_size, typename in_T , typename out_T > </div>
|
||||
template<int tg_mem_size, typename in_T, typename out_T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void fft </td>
|
||||
@@ -370,7 +383,7 @@ template<int tg_mem_size, typename in_T , typename out_T > </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<int tg_mem_size, typename in_T , typename out_T , int step, bool real = false> </div>
|
||||
template<int tg_mem_size, typename in_T, typename out_T, int step, bool real = false> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void four_step_fft </td>
|
||||
@@ -456,7 +469,7 @@ template<bool rader = false> </div>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<int tg_mem_size, typename in_T , typename out_T > </div>
|
||||
template<int tg_mem_size, typename in_T, typename out_T> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void rader_fft </td>
|
||||
@@ -625,7 +638,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -647,7 +660,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -669,7 +682,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -691,7 +704,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -713,7 +726,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -735,7 +748,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -757,7 +770,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -779,7 +792,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -801,7 +814,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -823,7 +836,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -845,7 +858,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -867,7 +880,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -889,7 +902,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -911,7 +924,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -933,7 +946,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -955,7 +968,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -977,7 +990,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -999,7 +1012,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1021,7 +1034,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1043,7 +1056,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1065,7 +1078,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1087,7 +1100,7 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1095,10 +1108,13 @@ template<int radix, <a class="el" href="#a6ba62eabfd5428644aabf89ddaa0128d">R
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2fft_8h.html">fft.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
var backend_2metal_2kernels_2fft_8h =
|
||||
[
|
||||
[ "MAX_OUTPUT_SIZE", "backend_2metal_2kernels_2fft_8h.html#a28d683cf067736d76f867f30c066317e", null ],
|
||||
[ "MAX_RADIX", "backend_2metal_2kernels_2fft_8h.html#a7b6e56afa21f022c5e754b000955735a", null ],
|
||||
[ "RADIX_STEP", "backend_2metal_2kernels_2fft_8h.html#a794032d3a9acff0e31c77c69d0007f10", null ],
|
||||
[ "RadixFunc", "backend_2metal_2kernels_2fft_8h.html#a6ba62eabfd5428644aabf89ddaa0128d", null ],
|
||||
[ "bluestein_fft", "backend_2metal_2kernels_2fft_8h.html#a0abc609e9756475800e996775a96a87e", null ],
|
||||
[ "fft", "backend_2metal_2kernels_2fft_8h.html#a4010b0e151e5f01e610e9c32234458c7", null ],
|
||||
[ "four_step_fft", "backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de", null ],
|
||||
[ "perform_fft", "backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81", null ],
|
||||
[ "rader_fft", "backend_2metal_2kernels_2fft_8h.html#ad123452303f6415904f3592f660769b8", null ],
|
||||
[ "radix_butterfly", "backend_2metal_2kernels_2fft_8h.html#a278d980ed397e6841ce0af44b9aa4396", null ],
|
||||
[ "radix_n_steps", "backend_2metal_2kernels_2fft_8h.html#aba8d32e0911499671df93678f39da08b", null ],
|
||||
[ "elems_per_thread_", "backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3", null ],
|
||||
[ "inv_", "backend_2metal_2kernels_2fft_8h.html#a7a83318497519ff3ff0141b7d511ed38", null ],
|
||||
[ "is_power_of_2_", "backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c", null ],
|
||||
[ "rader_11_steps_", "backend_2metal_2kernels_2fft_8h.html#a1f3c377d05da52429172e64132dba750", null ],
|
||||
[ "rader_13_steps_", "backend_2metal_2kernels_2fft_8h.html#a20d24f3e040d3d226a70d4dd7c9ac6a9", null ],
|
||||
[ "rader_2_steps_", "backend_2metal_2kernels_2fft_8h.html#a2d725bfd4c30be4c605b5c4559a62892", null ],
|
||||
[ "rader_3_steps_", "backend_2metal_2kernels_2fft_8h.html#adb129cc3808c08fd95af9795bfc7ae63", null ],
|
||||
[ "rader_4_steps_", "backend_2metal_2kernels_2fft_8h.html#ac7c58404df0434d4f861db62d3471870", null ],
|
||||
[ "rader_5_steps_", "backend_2metal_2kernels_2fft_8h.html#afea05e9a7105bafbaafca25042f4d1b4", null ],
|
||||
[ "rader_6_steps_", "backend_2metal_2kernels_2fft_8h.html#a020469d1aca557ff1b49414f121dedbb", null ],
|
||||
[ "rader_7_steps_", "backend_2metal_2kernels_2fft_8h.html#a0d437aef17faf8d9707ae7ffe68fdb30", null ],
|
||||
[ "rader_8_steps_", "backend_2metal_2kernels_2fft_8h.html#ac6123e111816dd62a11ccb86b66fa3e9", null ],
|
||||
[ "rader_m_", "backend_2metal_2kernels_2fft_8h.html#ac309c77ef775a3ef13850c5287a86480", null ],
|
||||
[ "radix_11_steps_", "backend_2metal_2kernels_2fft_8h.html#a7cd17bff8bc567f71d4789ee31fa07f2", null ],
|
||||
[ "radix_13_steps_", "backend_2metal_2kernels_2fft_8h.html#abb079b86e89ca88ce13a179d9ec566af", null ],
|
||||
[ "radix_2_steps_", "backend_2metal_2kernels_2fft_8h.html#a53fdc660e99e6b5db6808bbd596cd374", null ],
|
||||
[ "radix_3_steps_", "backend_2metal_2kernels_2fft_8h.html#a579123b7be825f08f3076287dded08e3", null ],
|
||||
[ "radix_4_steps_", "backend_2metal_2kernels_2fft_8h.html#a12d99a846c3686806bab6c42148e1039", null ],
|
||||
[ "radix_5_steps_", "backend_2metal_2kernels_2fft_8h.html#a903d5239b5f73577c559e97ff910892d", null ],
|
||||
[ "radix_6_steps_", "backend_2metal_2kernels_2fft_8h.html#a2f7f7cc2423cfcd4998d1a2a0363c3e2", null ],
|
||||
[ "radix_7_steps_", "backend_2metal_2kernels_2fft_8h.html#a2145cc8ab4d07583a735317b3cf60d55", null ],
|
||||
[ "radix_8_steps_", "backend_2metal_2kernels_2fft_8h.html#a3cb03a97a209ba1346375e720ee76177", null ]
|
||||
];
|
||||
+67
-51
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/fft.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2fft_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">fft.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -202,7 +216,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> thread float2* inputs,</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> thread <span class="keywordtype">short</span>* indices,</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> thread float2* values,</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> threadgroup float2* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>) {</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> threadgroup float2* buf) {</div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">int</span> m_r = n / radix;</div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// When combining different sized radices, we have to do</span></div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// multiple butterflies in a single thread.</span></div>
|
||||
@@ -220,7 +234,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> index = i + t * m;</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (index < m_r) {</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> r = 0; r < radix; r++) {</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> inputs[r] = <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[index + r * m_r];</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> inputs[r] = buf[index + r * m_r];</div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a278d980ed397e6841ce0af44b9aa4396">radix_butterfly<radix, radix_func></a>(</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> index, *p, inputs, indices + t * radix, values + t * radix);</div>
|
||||
@@ -235,7 +249,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (index < m_r) {</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> r = 0; r < radix; r++) {</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> r_index = t * radix + r;</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[indices[r_index]] = values[r_index];</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> buf[indices[r_index]] = values[r_index];</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> }</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> }</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
|
||||
@@ -256,7 +270,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="keyword">template</span> <<span class="keywordtype">bool</span> rader = false></div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span>METAL_FUNC <span class="keywordtype">void</span></div>
|
||||
<div class="foldopen" id="foldopen00159" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81"> 159</a></span><a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(<span class="keywordtype">int</span> fft_idx, thread <span class="keywordtype">int</span>* p, <span class="keywordtype">int</span> m, <span class="keywordtype">int</span> n, threadgroup float2* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>) {</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81"> 159</a></span><a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(<span class="keywordtype">int</span> fft_idx, thread <span class="keywordtype">int</span>* p, <span class="keywordtype">int</span> m, <span class="keywordtype">int</span> n, threadgroup float2* buf) {</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> float2 inputs[<a class="code hl_define" href="backend_2metal_2kernels_2fft_8h.html#a7b6e56afa21f022c5e754b000955735a">MAX_RADIX</a>];</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordtype">short</span> indices[<a class="code hl_define" href="backend_2metal_2kernels_2fft_8h.html#a28d683cf067736d76f867f30c066317e">MAX_OUTPUT_SIZE</a>];</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> float2 values[<a class="code hl_define" href="backend_2metal_2kernels_2fft_8h.html#a28d683cf067736d76f867f30c066317e">MAX_OUTPUT_SIZE</a>];</div>
|
||||
@@ -310,9 +324,9 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordtype">int</span> fft_idx = elem.z; <span class="comment">// Thread index in DFT</span></div>
|
||||
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordtype">int</span> m = grid.z; <span class="comment">// Threads per DFT</span></div>
|
||||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordtype">int</span> tg_idx = elem.y * n; <span class="comment">// Index of this DFT in threadgroup</span></div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> threadgroup float2* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> = &shared_in[tg_idx];</div>
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> threadgroup float2* buf = &shared_in[tg_idx];</div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, buf);</div>
|
||||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
|
||||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> read_writer.write();</div>
|
||||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span>}</div>
|
||||
@@ -379,7 +393,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordtype">int</span> fft_idx = elem.z;</div>
|
||||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordtype">int</span> tg_idx = elem.y * n;</div>
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> threadgroup float2* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> = &shared_in[tg_idx];</div>
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> threadgroup float2* buf = &shared_in[tg_idx];</div>
|
||||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// rader_m = n / rader_n;</span></div>
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordtype">int</span> rader_m = <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ac309c77ef775a3ef13850c5287a86480">rader_m_</a>;</div>
|
||||
@@ -391,7 +405,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="comment">// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1</span></div>
|
||||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordtype">short</span> x_0_index =</div>
|
||||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a>(fft_idx * <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a> / (rader_n - 1), rader_m - 1);</div>
|
||||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> float2 x_0[2] = {<a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[x_0_index], <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[x_0_index + 1]};</div>
|
||||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> float2 x_0[2] = {buf[x_0_index], buf[x_0_index + 1]};</div>
|
||||
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
|
||||
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// Do the Rader permutation in shared memory</span></div>
|
||||
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> float2 temp[<a class="code hl_define" href="backend_2metal_2kernels_2fft_8h.html#a7b6e56afa21f022c5e754b000955735a">MAX_RADIX</a>];</div>
|
||||
@@ -399,26 +413,26 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> e = 0; e < <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a>; e++) {</div>
|
||||
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordtype">short</span> index = <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a>(fft_idx * <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a> + e, max_index);</div>
|
||||
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordtype">short</span> g_q = raders_g_q[index / rader_m];</div>
|
||||
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> temp[e] = <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[rader_m + (g_q - 1) * rader_m + index % rader_m];</div>
|
||||
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> temp[e] = buf[rader_m + (g_q - 1) * rader_m + index % rader_m];</div>
|
||||
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> }</div>
|
||||
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
|
||||
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
|
||||
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> e = 0; e < <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a>; e++) {</div>
|
||||
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordtype">short</span> index = <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a>(fft_idx * <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a> + e, max_index);</div>
|
||||
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[index + rader_m] = temp[e];</div>
|
||||
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> buf[index + rader_m] = temp[e];</div>
|
||||
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
|
||||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
|
||||
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div>
|
||||
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="comment">// Rader FFT on x[rader_m:]</span></div>
|
||||
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordtype">int</span> p = 1;</div>
|
||||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a><<span class="comment">/*rader=*/</span><span class="keyword">true</span>>(fft_idx, &p, m, n - rader_m, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> + rader_m);</div>
|
||||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a><<span class="comment">/*rader=*/</span><span class="keyword">true</span>>(fft_idx, &p, m, n - rader_m, buf + rader_m);</div>
|
||||
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> </div>
|
||||
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="comment">// x_1 + ... + x_n is computed for us in the first FFT step so</span></div>
|
||||
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="comment">// we save it in the first rader_m indices of the array for later.</span></div>
|
||||
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordtype">int</span> x_sum_index = <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a>(fft_idx, rader_m - 1);</div>
|
||||
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[x_sum_index] = <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[rader_m + x_sum_index * (rader_n - 1)];</div>
|
||||
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> buf[x_sum_index] = buf[rader_m + x_sum_index * (rader_n - 1)];</div>
|
||||
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
|
||||
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> float2 inv = {1.0f, -1.0f};</div>
|
||||
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> e = 0; e < <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a>; e++) {</div>
|
||||
@@ -426,7 +440,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordtype">short</span> interleaved_index =</div>
|
||||
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> index / rader_m + (index % rader_m) * (rader_n - 1);</div>
|
||||
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> temp[e] = <a class="code hl_function" href="radix_8h.html#a5bfc53b531214c9ce277bebc18aa67d6">complex_mul</a>(</div>
|
||||
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[rader_m + interleaved_index],</div>
|
||||
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> buf[rader_m + interleaved_index],</div>
|
||||
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> raders_b_q[interleaved_index % (rader_n - 1)]);</div>
|
||||
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> }</div>
|
||||
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
|
||||
@@ -434,25 +448,25 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
|
||||
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> e = 0; e < <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a>; e++) {</div>
|
||||
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keywordtype">short</span> index = <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a>(fft_idx * <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a> + e, max_index);</div>
|
||||
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[rader_m + index] = temp[e] * inv;</div>
|
||||
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> buf[rader_m + index] = temp[e] * inv;</div>
|
||||
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> }</div>
|
||||
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> </div>
|
||||
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
|
||||
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="comment">// Rader IFFT on x[rader_m:]</span></div>
|
||||
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> p = 1;</div>
|
||||
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a><<span class="comment">/*rader=*/</span><span class="keyword">true</span>>(fft_idx, &p, m, n - rader_m, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> + rader_m);</div>
|
||||
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a><<span class="comment">/*rader=*/</span><span class="keyword">true</span>>(fft_idx, &p, m, n - rader_m, buf + rader_m);</div>
|
||||
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> </div>
|
||||
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> float2 rader_inv_factor = {1.0f / (rader_n - 1), -1.0f / (rader_n - 1)};</div>
|
||||
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
|
||||
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> e = 0; e < <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a>; e++) {</div>
|
||||
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keywordtype">short</span> index = <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a>(fft_idx * <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a> + e, n - rader_m - 1);</div>
|
||||
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keywordtype">short</span> diff_index = index / (rader_n - 1) - x_0_index;</div>
|
||||
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> temp[e] = <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[rader_m + index] * rader_inv_factor + x_0[diff_index];</div>
|
||||
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> temp[e] = buf[rader_m + index] * rader_inv_factor + x_0[diff_index];</div>
|
||||
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> }</div>
|
||||
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> </div>
|
||||
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="comment">// Use the sum of elements that was computed in the first FFT</span></div>
|
||||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> float2 x_sum = <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[x_0_index] + x_0[0];</div>
|
||||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> float2 x_sum = buf[x_0_index] + x_0[0];</div>
|
||||
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> </div>
|
||||
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
|
||||
@@ -461,15 +475,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="keywordtype">short</span> g_q_index = index % (rader_n - 1);</div>
|
||||
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordtype">short</span> g_q = raders_g_minus_q[g_q_index];</div>
|
||||
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <span class="keywordtype">short</span> out_index = index - g_q_index + g_q + (index / (rader_n - 1));</div>
|
||||
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[out_index] = temp[e];</div>
|
||||
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> buf[out_index] = temp[e];</div>
|
||||
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> }</div>
|
||||
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> </div>
|
||||
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[x_0_index * rader_n] = x_sum;</div>
|
||||
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> buf[x_0_index * rader_n] = x_sum;</div>
|
||||
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> </div>
|
||||
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
|
||||
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> p = rader_n;</div>
|
||||
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, buf);</div>
|
||||
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
|
||||
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> read_writer.write();</div>
|
||||
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span>}</div>
|
||||
@@ -520,22 +534,22 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">int</span> fft_idx = elem.z; <span class="comment">// Thread index in DFT</span></div>
|
||||
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <span class="keywordtype">int</span> m = grid.z; <span class="comment">// Threads per DFT</span></div>
|
||||
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">int</span> tg_idx = elem.y * n; <span class="comment">// Index of this DFT in threadgroup</span></div>
|
||||
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> threadgroup float2* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> = &shared_in[tg_idx];</div>
|
||||
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> threadgroup float2* buf = &shared_in[tg_idx];</div>
|
||||
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> </div>
|
||||
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="comment">// fft</span></div>
|
||||
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, buf);</div>
|
||||
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> </div>
|
||||
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> float2 inv = float2(1.0f, -1.0f);</div>
|
||||
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> t = 0; t < <a class="code hl_variable" href="backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3">elems_per_thread_</a>; t++) {</div>
|
||||
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> <span class="keywordtype">int</span> index = fft_idx + t * m;</div>
|
||||
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[index] = <a class="code hl_function" href="radix_8h.html#a5bfc53b531214c9ce277bebc18aa67d6">complex_mul</a>(<a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>[index], w_q[index]) * inv;</div>
|
||||
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> buf[index] = <a class="code hl_function" href="radix_8h.html#a5bfc53b531214c9ce277bebc18aa67d6">complex_mul</a>(buf[index], w_q[index]) * inv;</div>
|
||||
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> }</div>
|
||||
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
|
||||
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
|
||||
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="comment">// ifft</span></div>
|
||||
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> p = 1;</div>
|
||||
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, buf);</div>
|
||||
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
|
||||
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> read_writer.write_padded(length, w_k);</div>
|
||||
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span>}</div>
|
||||
@@ -566,7 +580,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="keywordtype">int</span> fft_idx = elem.z;</div>
|
||||
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> </div>
|
||||
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> threadgroup float2 shared_in[tg_mem_size];</div>
|
||||
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> threadgroup float2* <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a> = &shared_in[elem.y * n];</div>
|
||||
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> threadgroup float2* buf = &shared_in[elem.y * n];</div>
|
||||
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> </div>
|
||||
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">using </span>read_writer_t = <a class="code hl_struct" href="struct_read_writer.html">ReadWriter<in_T, out_T, step, real></a>;</div>
|
||||
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> read_writer_t read_writer = read_writer_t(</div>
|
||||
@@ -588,12 +602,11 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> threadgroup_barrier(mem_flags::mem_threadgroup);</div>
|
||||
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> </div>
|
||||
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <span class="keywordtype">int</span> p = 1;</div>
|
||||
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, <a class="code hl_variable" href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a>);</div>
|
||||
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <a class="code hl_function" href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a>(fft_idx, &p, m, n, buf);</div>
|
||||
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
|
||||
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> read_writer.write_strided(stride, overall_n);</div>
|
||||
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span>}</div>
|
||||
</div>
|
||||
<div class="ttc" id="abackend_2metal_2allocator_8h_html_a15aa5cc1baf29be08d55cca88509e697"><div class="ttname"><a href="backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697">buf</a></div><div class="ttdeci">MTL::Buffer * buf</div><div class="ttdef"><b>Definition</b> allocator.h:39</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_a020469d1aca557ff1b49414f121dedbb"><div class="ttname"><a href="backend_2metal_2kernels_2fft_8h.html#a020469d1aca557ff1b49414f121dedbb">rader_6_steps_</a></div><div class="ttdeci">static constant constexpr const int rader_6_steps_</div><div class="ttdef"><b>Definition</b> fft.h:43</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_a050ead8fa5cacdaec13d68ca3c0dcb81"><div class="ttname"><a href="backend_2metal_2kernels_2fft_8h.html#a050ead8fa5cacdaec13d68ca3c0dcb81">perform_fft</a></div><div class="ttdeci">METAL_FUNC void perform_fft(int fft_idx, thread int *p, int m, int n, threadgroup float2 *buf)</div><div class="ttdef"><b>Definition</b> fft.h:159</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2fft_8h_html_a0abc609e9756475800e996775a96a87e"><div class="ttname"><a href="backend_2metal_2kernels_2fft_8h.html#a0abc609e9756475800e996775a96a87e">bluestein_fft</a></div><div class="ttdeci">void bluestein_fft(const device in_T *in, device out_T *out, const device float2 *w_q, const device float2 *w_k, constant const int &length, constant const int &n, constant const int &batch_size, uint3 elem, uint3 grid)</div><div class="ttdef"><b>Definition</b> fft.h:374</div></div>
|
||||
@@ -649,10 +662,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="asteel_2defines_8h_html_a90b91c866313ffa46eff6d9cc944ad2b"><div class="ttname"><a href="steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b">STEEL_CONST</a></div><div class="ttdeci">#define STEEL_CONST</div><div class="ttdef"><b>Definition</b> defines.h:3</div></div>
|
||||
<div class="ttc" id="astruct_read_writer_html"><div class="ttname"><a href="struct_read_writer.html">ReadWriter</a></div><div class="ttdef"><b>Definition</b> readwrite.h:35</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2fft_8h.html">fft.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+41
-24
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/jit/bf16.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2jit_2bf16_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_fb5e52e7ad5a84a63db2993d12f7610c.html">jit</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> </div>
|
||||
@@ -151,10 +165,13 @@ Macros</h2></td></tr>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_fb5e52e7ad5a84a63db2993d12f7610c.html">jit</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2jit_2bf16_8h.html">bf16.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
var backend_2metal_2kernels_2jit_2bf16_8h =
|
||||
[
|
||||
[ "jit_else", "backend_2metal_2kernels_2jit_2bf16_8h.html#a4b2f08732045407adc7ee181e39e5ae3", null ],
|
||||
[ "jit_endif", "backend_2metal_2kernels_2jit_2bf16_8h.html#a5049b44a1fffcb837e0c470ae4cafc56", null ],
|
||||
[ "jit_if", "backend_2metal_2kernels_2jit_2bf16_8h.html#aaf5bb88c2349054a6c4c2aefee63d3d2", null ]
|
||||
];
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/jit/bf16.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2jit_2bf16_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_fb5e52e7ad5a84a63db2993d12f7610c.html">jit</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">bf16.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -112,10 +126,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2jit_2bf16_8h_html_aaf5bb88c2349054a6c4c2aefee63d3d2"><div class="ttname"><a href="backend_2metal_2kernels_2jit_2bf16_8h.html#aaf5bb88c2349054a6c4c2aefee63d3d2">jit_if</a></div><div class="ttdeci">#define jit_if</div><div class="ttdef"><b>Definition</b> bf16.h:4</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html">bf16.h</a></div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_fb5e52e7ad5a84a63db2993d12f7610c.html">jit</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2jit_2bf16_8h.html">bf16.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+386
-369
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,358 @@
|
||||
var backend_2metal_2kernels_2metal__3__0_2bf16_8h =
|
||||
[
|
||||
[ "_MLX_BFloat16", "struct___m_l_x___b_float16.html", "struct___m_l_x___b_float16" ],
|
||||
[ "_MLX_BFloat16::bits_to_bfloat_struct", "struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html", null ],
|
||||
[ "metal::_numeric_limits_impl< bfloat16_t >", "structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html", "structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4" ],
|
||||
[ "bfloat_binop", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707", null ],
|
||||
[ "bfloat_binop_base", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70", null ],
|
||||
[ "bfloat_binop_helper", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac7ff36230dab17e8f17b7a7c80888594", null ],
|
||||
[ "bfloat_compop", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239", null ],
|
||||
[ "bfloat_inplace_op", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ac82467fbc674e990090f482b9c1e5c", null ],
|
||||
[ "bfloat_inplace_op_addr_space_helper", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1457da931c28fa4e2500daa4e6441e8b", null ],
|
||||
[ "bfloat_inplace_op_addr_space_helper", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af30a2cbd2c3415516203b83bd21872f8", null ],
|
||||
[ "bfloat_inplace_op_helper", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afe5988aa8147be2bafda6a5b7792fe15", null ],
|
||||
[ "bfloat_inplace_op_helper", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2846fd11b5e19b435e9f7ef0998c9b1d", null ],
|
||||
[ "bfloat16_t", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82", null ],
|
||||
[ "bfloat16_to_uint16", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088", null ],
|
||||
[ "bfloat_bits_to_float", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3b33ae338dc4f223d0f3c748de07bad1", null ],
|
||||
[ "float_to_bfloat_bits", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1", null ],
|
||||
[ "metal::isnan", "namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afc6e4fc5589bbf30f978f34868dd4e55", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6baa722c22d66c7510786bb275cb8cc2", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa504a474ab6e00ebe2b1b7ed2f7d1ffb", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a347c9bbf816bad2e9e5e91aa448f8b65", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa6b99cde403405df1865c989e4ce845a", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2bbdcece13148826d3fe33af727bb79b", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3602117b4c61d5cd4fd72fb8e5f68bd6", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa8d9f01582a0a9f01a666d110c74db2a", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abf5f3040227f021a5b84cf2eda248b2f", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a33ea086b561c652f25833a5e1ded34dd", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a204d13a881ae8d337f6efbb98673790c", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeb1efa47c5f22cc0b35d49ccce73c406", null ],
|
||||
[ "operator!=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2721c088adfc9d73cde442d6badd2a6c", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8f06316063fc91747533105f256b55b5", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7b3bce3f6f17089d87e13e91f580a581", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a852689073c17596de4fb545bc046b380", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6278bd2e0e2805090b33ef666bf7f6bb", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1a559ab88dbbb4fd2c7509d2c94e55b", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7cd44d27fa9a4f13df39894c34fdb348", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a87ab4b7a502430da664ccb8abd383058", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a54ae7216b82c5cea362f6b83e1df3a9b", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a168300bbd04d8e97c5e4218cb14ae378", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aecf703522d9ce32dfeefe1e6e903db06", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a495ae2d9be5d97c4c6448fc4e50a03e1", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee64dc1890abb6d1035361cb8c751f96", null ],
|
||||
[ "operator*", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5f997839cf49c24ab594a0dff486a7bc", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a13aa79165ec87710e977f33fe0361e91", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7232b0a0e193b3c6172d6fc2578bf419", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab706af260b61f735b28464877d02137c", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a81f65b04a87a25c7eb1a751d1be9fa55", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae97ab6c3ddcc2754b24f86319a5398be", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a917354f77eac26189da8a2f610a00074", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a99aa4cc110d1c7aa3b4c8c5cbf9235b7", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeff4c28986f98c23de1df17043edb0f5", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1a2a683ff40490226eb1371fb905023d", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ade65ebca11e38d56408c512df89b99f4", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a979374b1dd4e0eaf602326fa901336d1", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08c1f916302eb9d48c93f8b7260538fe", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3ff4ff59f411010ac8502cfabda4bd6f", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af725f935bfa0405e5ff17ede3ac47283", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2179abbc91ce8763e96e39e1917bfa6e", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7dbf0c75df4817cb4ef8b60c417a89d0", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4126fb7ed5bbb27a2332c543cf56a337", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3796dcf819adb1ef8152f57ba63ff6b1", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af4348ce3425dd99d069e8fdf06e25a3c", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac815eec2c1b15a47b1c6ea6790e77d24", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc8e82b8f593b12c6d405e2250ab0f62", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abd3d82e2dec1847e97eb8fc3bab2985a", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7c56980c234a04260b8b19298085e526", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab070ea4676d10a10ff3e9379a4068a57", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a323a80492cd17a49e2c3dd18f8c8b5cc", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab092d9790ef20fc0386707530aee89db", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2c3c5f793b3d957d7295d7f1faabebee", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8110fae7bcc34a0de5927546b24aa935", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4611728172afea51860a77fdb06cafa0", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a738078eb7d5ff94ff48156a555d763a5", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab840ff9de0cdd0e9afffb8baa2a850a3", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0197e039d4c65bf49649a6f250c2d436", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adb465776d3868bda0525d632ffc4d129", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abff1fd2439e31e6e64a3d2fdee3c7821", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aaab79d0b4c9e9bdc059ace6ec58c5b00", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac66657077d55e94197b52b63acb50b7d", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae4acef3e7ae7dfe359422503f894e885", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0b8736e2ae24758b6e24ea72668df5b4", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a435f2f4256aadb1b57fd62bb7f733cf7", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a73416a7415f3fe31525e33419e5e8aab", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad3565cc6fd1e088d052b1108aa065851", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a12a98d71d670b409b8065e0d61672d55", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a625dcb133f1f953f263e6200399866c6", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a383165ea838cc3feeee4d9cf54aa77cc", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc268cdbc30500f3009f5de2b2f0f67a", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad920df9579603f0b0ee2689eba330617", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0e4377b120d6305335d296e031ee5b30", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a16978f4b16d954ef4d4cf0f32f6c0b94", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a711693988c437c2fb4d7da505982fe21", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5d00eb2ec2b0e15b2753d100694c45ae", null ],
|
||||
[ "operator*=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08b6071245513e1726ec68e3b63edc53", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a09c1a797eb7f43742578680899932f50", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a551b970f73bb4a3b287653021d000b60", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8b6c3fd9d068a2159084359df8b9b449", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa415ce182fe7582d885fe633fc3527ce", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a006763fae6e0577fc168ec9446f0f747", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab43932322f81bf322aa1b0deeee9a987", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af87dfa2122e9c76042dc41fb7f338a87", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a43a225e7e548bb041f3a5d844faaf0da", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0a5bfe15d95ba540795f4c25ebfa4f07", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a62f891b7dbba0000749cf338f594bedb", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a12a47e8ac0be788edff57ae0a96d7830", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acd15d46ea5827a2a39898ccbb8352eb8", null ],
|
||||
[ "operator+", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af2737d09c887ee8cd43fdeabceddbe82", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24ca436ab299a710263d65302532dd3b", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab04f480aea9fbba0895068c7558dd400", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae0c70198e236ffe1a98f79987c686419", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab93ce536eb7998bee00de4af868e31a9", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a15573fefd880adefbba079b1c1bd8082", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac45e9ca0c7155caebe3d0f7261518077", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af5713afb3a62967a02c3c20661951ee4", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4dd3cf0e5aa116ff330352a50c18cde7", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a77bab4481b41be50297b257e95058706", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a251780ac4592cc2b1a543e417ff57770", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a13b3338935440ae51ecc4a356093efc5", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad0ae9e2b4874f991a2c853e1c1fe735d", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a104cf94cb9e359d1b6ef92ced2ce0c27", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3c62ac679d6aa515144d40ebafe4a188", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7f1b84352a3ed6171444a43da1fc7e92", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afb9a0e18c0e40c77e6143fb7d84ebfba", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7816a97d16b1d2f8a90227bb1da2f6ac", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee1bdf0ab2e445293708b476e8cfde3b", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24381d991c2d570aa953694f396a69b5", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a0cb8544b4ebd2906ba8e7f2868e8de", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a194a6670cc25ade35a24b566f31af785", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa04cfcb52191fd23205a1a3572b46ae0", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9ff5ab3aef1057fa083b53a65c8aba03", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af1983edd26245e6e51c6e47354095e32", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adf0cfd9a608a6fb3d57933e32e7d81d2", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac244d140c6149726ea44174d3e836ca3", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7595740d4cc12924905d6bd1b99ee4da", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7b134429ea0c8493800ff8b465410f9c", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3d0d689516c99003659c5d026847bd2e", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad684bc2ae1a2a627cd3e4a4c641e2d77", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae74bb0a3c12cd1a23f3d29ce307d6fb1", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8cd55d1a579540eb450e12a8a8a950be", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4bd92db6c8b9b5dc96332c7ae3eff8c7", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af802541c4c65ee4442acd495de4d27fe", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a190e27077f0fba642a86f5c8f488bcc2", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac1498acb8c3623b5f412f70ab6a6528b", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4154f90ab7857ca856f9e15fe1bf5acf", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a007f58508b98bb79e5c323ed0dec89b6", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1e28448e35f4934075b397c34ba3d66", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac188bd19f236b098d603b0d8acd08921", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a588ef0f7e03f306758524d378278976f", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5d628a5bc4fa755610392f47a523a1f1", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac06eb2fea47a09a8a8abdaa1aa9b4603", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abce5ab327110c164f054b43ed47f79a0", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab9ae6a51e2027b02cac9966e05f3ba68", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa7198e580e2a83c1fd01a4b6fdf86a80", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8ad16afd7f1711de83c0cec5af868f76", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef9fa600d107b509f2e3df7d6b080e01", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a74751abec7086f85f4f26ced44f1ca1f", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7c790442f77f2437b482c4a55e224fc3", null ],
|
||||
[ "operator+=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5263b2463fecdc97f9521d00bffea059", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a333f67614dbf8027439a7e124052cb85", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a891aa4bf46c20a26a55061736aba25f1", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af69ef8f1d8ecae0e6f755bf1c46cf075", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab02f8646b47806e1d2038f248df03f06", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab789f8a400512ff27e36b3373170f0c5", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5868c85c988ec3432cf86d7df40e464d", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a152366ab4e2ccc867e919af6c74ced91", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7ad7ff44a3200853711869f7a577d931", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5bd875a54b79b2dcedf674807c3e53c5", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab27b26182c7c6e08af37e6d511fd9253", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7f601b22ecc480132d82ad782e5363bf", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad03ef47e6cc7521bbfb45740dee20f88", null ],
|
||||
[ "operator-", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a42bead8ef0beb9f3452128d64cd4df9d", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0d3fb52437c677c5d0f1a3642384b15c", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab225043bd02bb423930bc98aae9c2bca", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef62c7e3e494b6a511a7833c0d942a60", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7167343d90eb70e5a0d5fa9ec5398e94", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9d06cceea5c179bcc608452188bd7d6a", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afb3cd302e0b78902c62111dce4494fe8", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab155f418f15cabd86ff942c6f9472ddb", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9a837c3b9c4e42f53d7cd1ed0d266e2f", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1dac193d9f1c8c0eb4473441895f8c58", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac2f1e1f2365cfa531b1519aa9ff67695", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad30726cc8b69fd300d33c2a46e123c28", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9b31c363ebc93d592b6fa0e27b00335a", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0aa9ffe056f49fda181bbacbd60556ea", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abb884888f14086cc674657677cb4b8bc", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aaa66dc6d7b2c5efbfaa97ca9c7872bd8", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acf7af2284269544064b68e807064bba4", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad2817d53fdd4b112babfb6f0b38c8f39", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adda64cae388baac1f138b06dc8595237", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a513501355a5912a1263fd8b10864142b", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8859b5b8dc241e4f58243c85d2630cc8", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a967a1d7b5664f616e5b6f2d257367f0c", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ada5685d99c2d6708d1c4ef826d68e879", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a38bb89f925eca4f9c042f6ee7a2c0193", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a696978d9401e09200045b2d8aad045c2", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a28d297705e29009197418546ef435393", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa705d87cf4b78e9d7c6b07dd0c66cac6", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab4f4ecd62c3d8b3363d02019573dc9f1", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7003e1e5881e3d106257f22b6a3e59fe", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aff19193e1b2cee29a8737318e95cc74a", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a726cecf778b8584b6f7c37db1b064576", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac30c580713f354916088a7dc049ae4cd", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae998d8f423a9fb73405cfbd4b836bc72", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a948579a4d9ba276523190b03b09578fb", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a542affc376726840647a6e93acf2c1a7", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af20874a61c6c3f4c3fd045a96e806644", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a92d1348f201d78fcd474f75d5b23ef68", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3165e37d393be50c2cfa9ddcba153684", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aede0cc4179507b739849948f1a2fed4b", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3816a35f8468156d59c239256c12dcf3", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a715c824ee8c87e0256114a85624d9949", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a279d09ab8542f1c1a8dc8173b65946b6", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a4b98a0a11db5b77cf9168df37c8bc7", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#add18cfe4c0d38e95c6dff6bab3e7a932", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3eefe9a7f5fb226335ea687012f32d5c", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a76f5bd895b7214cbc3cea3440992718a", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e1a6056f9c96f3c89fe204dbf103be5", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa332fae098e7c6dc23b98bc0026f1070", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7bc91aaaf476a37063264d1d53d862cc", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a491dadfae957cd7cc0c36188d910f6f6", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31a3d8f2ff8038f7e0d717845c039808", null ],
|
||||
[ "operator-=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab1de7e7e7304ff3598925d2e69134764", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f16a44e1c9836ca57edc1d7b93b5d7c", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aacaedf12f862c76457133336dd6fc446", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad8f7b11669736fbd6ed2e28211d877d4", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8c8ac6736440fdca366ebdefe2a12b9f", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad6399ba2b8708899739b4cdbb44add8d", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4720cc79ab2b8e39952ea9ef20e51250", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa3277ae33976c70f7bd937ddff027b72", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a584a513596de20663dad951a5b81695e", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a59515695ebc48844345fa5120511aed1", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad6859b04680d0d26d75fd6c4dd74ee24", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a998b1ba877a606aedf722ab46b290403", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a72d10ec0e62949247da129eb3a83fb9b", null ],
|
||||
[ "operator/", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa708a970a200822c99c0489f389469fa", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af1a12a1efb618a57da6dd41ae18cb53c", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5aa3b8c68a2b58d41ea33eaabbf83095", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a744f72ba83522fe3cc2a49a007b42543", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab933bc3cdf9adfea10ab9dba5292c812", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a64f1136b17006f168ef837e17240814f", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f835a0a80c411580c97b65fdc5bdfd3", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a44522c2304c6396bbe6b9d32000f4b6f", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#adc9f32cc6f40768df4285fba2e4783c7", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4358ee606e66ba2081fcf94f9c3b5915", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a90a1c5130db515db48624d8587edbb91", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a77c678665b34df7652dcde053ca73185", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a25e7c5d2ecf3375756d59074f333858f", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae46d75b8046d557452d74513f1106710", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a17f47ec9cff60f8e1b3477a2793b7ac0", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aef8e7e499ea9d432aa743d83c076f945", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae71f66d814a03f6377c9d86cf0a2b5d7", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad1e7ef6f065695d4b1d017547b60ef62", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a94686039356dfa9aa45608a8b0562fdc", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a65f30a2dc199134e35bc7c5d431b2263", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae0614b6b199d8a65ae95d4621b118b82", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ae4a80fde67eea9a0a37b2803946544", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08d2460e259b9106d90d889481ad60d5", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5be23e296bbed3a885586a6424b1666e", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3a0a3edbf1ba2314551454059c3f422b", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ad0125b6baba3065a87a174ec27aa9a61", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a284dfc702f0f67b9c233b87162eeabdd", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7172d84db640e6c49dff0d08dd64b53e", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa846fde89c7d2d18b18ef180a8a9c8a3", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a912393b7208fa45bd1e87f30b218b68b", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f7fd418408806ef498745c6fdb2c062", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afba39221eb54e272aae79910b3cd7ef5", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acb9f0aef9fbdfde8a4f46e33b0d6c52f", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5cc74ad3e522d7104e6e2117751151ad", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab8f211ea896fc5190004f3ad6ad8932f", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa251d6483d3b099d1b5311fbe6f0bce2", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acf7cb9927bf09022088401923f2e1916", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08e778be18e4a291c108fcc528b981d3", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a18963246f2b640874bef6dca7049f64d", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac703495cb370b52526a5a2d36ae26038", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac057d95a2bf087575584aa6f9a2c6bf5", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a303dfcc81ffd355f866f863d7d9f0fa5", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab3b594321fb42b0c2da99954d1e0976c", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e1bcf3bc06cbcbc304c0cdf729802bc", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a86b2a001cbec0d3a8d762a3c7ff47b0b", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6b9e49ad9ea256d2d0220c0d81552602", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0e2c2c2cb50b3a55ff213f18978aca35", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ca11d43174baf0a729f93b35eabcbea", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab986ae2cec780a1f494b7b4468b7ba11", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a359edd4bcb8776861ceb26a3005624c0", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4a0023e2fd08875156cd6ef747fbb5cd", null ],
|
||||
[ "operator/=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abbe42648a46092137b303ccd08f7df86", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9ef6a57b7185e9ca49e255fec1a44e25", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aab02c65bc38ea66335b2192ead4095a8", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2486f3b5de85b0d57f458d8f21f82b42", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abdd04257e6a73883b5f56f1186d0e906", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0736a76f56578d26ba1422dc8b744a18", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a501cc01d5bf15d9f03aa28545f9624ea", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af80ff2020ec2c4b406c5fdae3fe55e63", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae91686513e284bcc9635833744bbdda1", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a435a2aec4c777b4b184ff5d24992e8a1", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a69984aaa05ae1d4fccccf7f57e8ecb4a", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a24b1fa8998c892f90f8dde7c34fb10a5", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1b029e4ca72125a5f9471f582c819705", null ],
|
||||
[ "operator<", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac03f6eefb836373d37dc280b0d813d78", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#af469c58cffeab488c681f4b33f02cd05", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a5a81eae168dfafd299c2b94e3e8558cf", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#acba9efe192d22b7781b4622103c7a944", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7eac96f64ca42991caf819c8e8c8d2bc", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a28f8d21c5eef047c701cf690ce9c2ef0", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a08c7d12a0d16565fbf052dba2db8b22d", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f360806708b95a3be400af0b8871b57", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0f486bf02c6ad5b9b6a96d3450f03e47", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aff100489cc40ad276c2d5d67a9df67db", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a88c11cd37600de5480570da3d2ae5732", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a14b56c687053ee2432398a25663c068f", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2b9de9624c0a507b4ead85f898ad9daf", null ],
|
||||
[ "operator<=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a80d288f22cadfdf5e904410349e616a1", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a49a13b06a325ed3cca4004b6a0cde065", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a0aa3bfcfab53700488e5f386e6de60d5", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae753526b669fba27771089dc809abd66", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae86f5917847b1ec9f313996250f2e0be", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa5fa1a8f2b39c3508fe38205469756d1", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac30a2c1fa6f172af903fdeb6a8632606", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3ae2091ada1e39e857fbc53c97bdb79f", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a3936148781ab1c4f33f58d12c116f370", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a05a4f197a71d0f16879032f44492bb79", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aab74ec4d33a64b92b908717d500f1ecf", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aeadc1f36c6bdc219294ce9341d80afa5", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab4e9ad547aa23daa351075e0ecc58fa2", null ],
|
||||
[ "operator==", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac7b4d295f3c7b1e09964f24f306422da", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae394c0a10e47d1d047854a888402eb57", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ab9cd098786d2f4c855c42e4a6f30ab3e", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#afd7cdb8ed2a9820efe9cf322c06f188c", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a68125e66f74eaffe5ea9267638ce870d", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a41d55d167e9dc63bf29d15e0ff004869", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a74e477567c9477c2cf0684f81ef4498f", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2826bd301bb5393473ccd363f2052c0d", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a55600f3b9859e2891e0e0b5690867b72", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31bbdbe0b62b90a4d6ea4bb0a7db586b", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac89eb6b29edad8cca63727ab97171c29", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aa95f9ebfdab3c5f524775651362ce914", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2d37130b6fd79b425f5ba92b65e36bed", null ],
|
||||
[ "operator>", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a62a512d0edd894759c69f724b970fbdb", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a430dd11fbf4c6f39bc1506ab43b2341f", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a64f6787a96386246f83a8981d274150e", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ae88617c4a012c5dc12781a349a28c886", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9e21c5ea9dd724dc2ca8c54ad908f09c", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2807fa6862b0f9689c81199b1e695ed8", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#abec53064aa96265385ecc57de5fbc74c", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a523eda93c809733368e2b45382d2add6", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1a788f82212afad30e4c2ee40f1c313c", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a467a88531150a4d9d30fce07c49c126e", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2f6286d222e2176bcbdc824c5d598100", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aee3ae0d0d1f941463b06eca0bf041b2b", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#ac766839f8f9e4863e8e18418c342c875", null ],
|
||||
[ "operator>=", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1f4e90909ac1c7280f4c7d1977c55fb7", null ],
|
||||
[ "uint16_to_bfloat16", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4", null ],
|
||||
[ "can_convert_from_bfloat", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a", null ],
|
||||
[ "can_convert_to_bfloat", "backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aae77817d261452b2f001f4d947a3e04e", null ]
|
||||
];
|
||||
+87
-61
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/metal_3_0/bf16.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2metal__3__0_2bf16_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_d36f9e79442ec4bd53287b83bdefe7e5.html">metal_3_0</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">bf16.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -98,7 +112,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <metal_stdlib></span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacemetal.html">metal</a>;</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">// Helpers</span></div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||
<div class="foldopen" id="foldopen00013" data-start="{" data-end="}">
|
||||
@@ -135,17 +149,17 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a"> 41</a></span><span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">bool</span> <a class="code hl_variable" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a">can_convert_from_bfloat</a> =</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> !is_same_v<T, _MLX_BFloat16> && is_convertible_v<float, T>;</div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span></div>
|
||||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">// Bfloat struct</span></div>
|
||||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="foldopen" id="foldopen00048" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html"> 48</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a> {</div>
|
||||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html"> 48</a></span><span class="keyword">struct </span><a class="code hl_function" href="struct___m_l_x___b_float16.html#ab1af7700f5d1e4ab567da6a34fa84668">_MLX_BFloat16</a> {</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Constructors</span></div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8"> 51</a></span> uint16_t <a class="code hl_variable" href="struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8">bits_</a>;</div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#ab1af7700f5d1e4ab567da6a34fa84668"> 52</a></span> <a class="code hl_function" href="struct___m_l_x___b_float16.html#ab1af7700f5d1e4ab567da6a34fa84668">_MLX_BFloat16</a>() thread = default;</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#ae5c51644c3bd7cda6b796cb63c60c0b4"> 53</a></span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>() threadgroup = default;</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#a21998a3c852d0e0f52681f8b453172bf"> 54</a></span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>() device = default;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#a64d8fc2e2463d7fa19cd3d5dd1ffdae8"> 55</a></span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>() constant = default;</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#ae5c51644c3bd7cda6b796cb63c60c0b4"> 53</a></span> <a class="code hl_function" href="struct___m_l_x___b_float16.html#ab1af7700f5d1e4ab567da6a34fa84668">_MLX_BFloat16</a>() threadgroup = default;</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#a21998a3c852d0e0f52681f8b453172bf"> 54</a></span> <a class="code hl_function" href="struct___m_l_x___b_float16.html#ab1af7700f5d1e4ab567da6a34fa84668">_MLX_BFloat16</a>() device = default;</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#a64d8fc2e2463d7fa19cd3d5dd1ffdae8"> 55</a></span> <a class="code hl_function" href="struct___m_l_x___b_float16.html#ab1af7700f5d1e4ab567da6a34fa84668">_MLX_BFloat16</a>() constant = default;</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html"> 57</a></span> struct <a class="code hl_struct" href="struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html">bits_to_bfloat_struct</a> {};</div>
|
||||
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
|
||||
@@ -157,7 +171,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#a50d825f05a162d0ac133ad8b6f3c3112"> 61</a></span> <span class="keyword">constexpr</span> METAL_FUNC <a class="code hl_function" href="struct___m_l_x___b_float16.html#a50d825f05a162d0ac133ad8b6f3c3112">_MLX_BFloat16</a>(uint16_t bits, <a class="code hl_struct" href="struct___m_l_x___b_float16_1_1bits__to__bfloat__struct.html">bits_to_bfloat_struct</a>)</div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> : <a class="code hl_variable" href="struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8">bits_</a>(bits) {}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span></div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Conversions to bfloat</span></div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <</div>
|
||||
@@ -191,7 +205,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="struct___m_l_x___b_float16.html#aec7fa716fd621ce1843338027bcb0118"> 88</a></span> <span class="keyword">constexpr</span> METAL_FUNC <a class="code hl_function" href="struct___m_l_x___b_float16.html#aec7fa716fd621ce1843338027bcb0118">_MLX_BFloat16</a>(T x) constant</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> : <a class="code hl_variable" href="struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8">bits_</a>(<a class="code hl_function" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1">float_to_bfloat_bits</a>(<span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(x))) {}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span></div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Conversions from bfloat</span></div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <</div>
|
||||
@@ -231,16 +245,16 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span></div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">// Bfloat operators</span></div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span></div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment">// Unary ops</span></div>
|
||||
<div class="foldopen" id="foldopen00129" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855"> 129</a></span><span class="keyword">constexpr</span> METAL_FUNC <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a> <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855">operator-</a>(<a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a> x) {</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> -<span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(x);</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span></div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">// Binary operators</span></div>
|
||||
<div class="foldopen" id="foldopen00135" data-start="" data-end="">
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a78c92beda4436da9a2e520fa98c59f70"> 135</a></span><span class="preprocessor">#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype) \</span></div>
|
||||
@@ -258,7 +272,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor"> return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \</span></div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor"> }</span></div>
|
||||
</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span></div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment">// Arithmetic Operators</span></div>
|
||||
<div class="foldopen" id="foldopen00150" data-start="" data-end="">
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707"> 150</a></span><span class="preprocessor">#define bfloat_binop(_op_, _operator_) \</span></div>
|
||||
@@ -276,7 +290,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a333f67614dbf8027439a7e124052cb85"> 161</a></span><a class="code hl_define" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707">bfloat_binop</a>(-, <span class="keyword">operator</span>-);</div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8f06316063fc91747533105f256b55b5"> 162</a></span><a class="code hl_define" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707">bfloat_binop</a>(*, <span class="keyword">operator</span>*);</div>
|
||||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a9f16a44e1c9836ca57edc1d7b93b5d7c"> 163</a></span><a class="code hl_define" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707">bfloat_binop</a>(/, <span class="keyword">operator</span>/);</div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
|
||||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span></div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment">// Comparison ops</span></div>
|
||||
<div class="foldopen" id="foldopen00167" data-start="" data-end="">
|
||||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a330a0883503cb640f1cf628a7ca50239"> 167</a></span><span class="preprocessor">#define bfloat_compop(__op__, __operator__) \</span></div>
|
||||
@@ -301,7 +315,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor">#undef bfloat_binop_base</span></div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor">#undef bfloat_binop_helper</span></div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="preprocessor">#undef bfloat_binop</span></div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span></div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment">// Inplace Operators</span></div>
|
||||
<div class="foldopen" id="foldopen00191" data-start="" data-end="">
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a2846fd11b5e19b435e9f7ef0998c9b1d"> 191</a></span><span class="preprocessor">#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space) \</span></div>
|
||||
@@ -364,11 +378,11 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
|
||||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="preprocessor">#undef bfloat_inplace_op_helper</span></div>
|
||||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="preprocessor">#undef bfloat_inplace_op_addr_space_helper</span></div>
|
||||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
|
||||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span></div>
|
||||
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="comment">// Bfloat typedef</span></div>
|
||||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82"> 251</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a>;</div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82"> 251</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a>;</div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span></div>
|
||||
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="comment">// Bfloat numeric limits</span></div>
|
||||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
|
||||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="preprocessor">#pragma METAL internals : enable</span></div>
|
||||
@@ -377,58 +391,58 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
|
||||
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="keyword">template</span> <></div>
|
||||
<div class="foldopen" id="foldopen00262" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html"> 262</a></span><span class="keyword">struct </span>_numeric_limits_impl<<a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a>> : _fp_numeric_limits_impl_base {</div>
|
||||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879"> 263</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> digits = 8;</div>
|
||||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b"> 264</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> digits10 = 2;</div>
|
||||
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2"> 265</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> max_digits10 = 4;</div>
|
||||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aaefa8c2cadd11ac7e22f7b2c5edbd1cd"> 266</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> radix = 2;</div>
|
||||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470"> 267</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> min_exponent = -125;</div>
|
||||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277"> 268</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> min_exponent10 = -37;</div>
|
||||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2"> 269</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> max_exponent = 128;</div>
|
||||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94"> 270</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> max_exponent10 = 38;</div>
|
||||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html"> 262</a></span><span class="keyword">struct </span>_numeric_limits_impl<<a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a>> : _fp_numeric_limits_impl_base {</div>
|
||||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879"> 263</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879">digits</a> = 8;</div>
|
||||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b"> 264</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b">digits10</a> = 2;</div>
|
||||
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2"> 265</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2">max_digits10</a> = 4;</div>
|
||||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aaefa8c2cadd11ac7e22f7b2c5edbd1cd"> 266</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aaefa8c2cadd11ac7e22f7b2c5edbd1cd">radix</a> = 2;</div>
|
||||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470"> 267</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470">min_exponent</a> = -125;</div>
|
||||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277"> 268</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277">min_exponent10</a> = -37;</div>
|
||||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2"> 269</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2">max_exponent</a> = 128;</div>
|
||||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94"> 270</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant <span class="keywordtype">int</span> <a class="code hl_variable" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94">max_exponent10</a> = 38;</div>
|
||||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
|
||||
<div class="foldopen" id="foldopen00272" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f"> 272</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f">min</a>() {</div>
|
||||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f"> 272</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f">min</a>() {</div>
|
||||
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x0080, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00275" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116"> 275</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116">lowest</a>() {</div>
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116"> 275</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116">lowest</a>() {</div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0xFF7F, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00278" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50"> 278</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50">max</a>() {</div>
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50"> 278</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50">max</a>() {</div>
|
||||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x7F7F, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00281" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca"> 281</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca">epsilon</a>() {</div>
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca"> 281</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca">epsilon</a>() {</div>
|
||||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x3C00, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00284" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3"> 284</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3">round_error</a>() {</div>
|
||||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3"> 284</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3">round_error</a>() {</div>
|
||||
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x3F00, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00287" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206"> 287</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206">infinity</a>() {</div>
|
||||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206"> 287</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206">infinity</a>() {</div>
|
||||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x7F80, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00290" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b"> 290</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b">quiet_NaN</a>() {</div>
|
||||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b"> 290</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b">quiet_NaN</a>() {</div>
|
||||
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x7FC0, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00293" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80"> 293</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80">signaling_NaN</a>() {</div>
|
||||
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80"> 293</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80">signaling_NaN</a>() {</div>
|
||||
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x7F80, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> }</div>
|
||||
</div>
|
||||
<div class="foldopen" id="foldopen00296" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed"> 296</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed">denorm_min</a>() {</div>
|
||||
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed"> 296</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed">denorm_min</a>() {</div>
|
||||
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(0x0001, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> }</div>
|
||||
</div>
|
||||
@@ -445,13 +459,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> </div>
|
||||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="preprocessor">#pragma METAL internals : disable</span></div>
|
||||
<div class="foldopen" id="foldopen00308" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088"> 308</a></span><span class="keyword">inline</span> uint16_t <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088">bfloat16_to_uint16</a>(<span class="keyword">const</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> x) {</div>
|
||||
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088"> 308</a></span><span class="keyword">inline</span> uint16_t <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088">bfloat16_to_uint16</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> x) {</div>
|
||||
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <span class="keywordflow">return</span> x.<a class="code hl_variable" href="struct___m_l_x___b_float16.html#a4113263b63e3757ea8334cc4f0f5c3c8">bits_</a>;</div>
|
||||
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> </div>
|
||||
<div class="foldopen" id="foldopen00312" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4"> 312</a></span><span class="keyword">inline</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4">uint16_to_bfloat16</a>(<span class="keyword">const</span> uint16_t x) {</div>
|
||||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4"> 312</a></span><span class="keyword">inline</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4">uint16_to_bfloat16</a>(<span class="keyword">const</span> uint16_t x) {</div>
|
||||
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a>(x, <a class="code hl_function" href="struct___m_l_x___b_float16.html#a91ccb774773b65f8d4c1aea3f1c6e1ca">_MLX_BFloat16::bits_to_bfloat</a>());</div>
|
||||
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span>}</div>
|
||||
</div>
|
||||
@@ -462,6 +476,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a4ac82467fbc674e990090f482b9c1e5c"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a4ac82467fbc674e990090f482b9c1e5c">bfloat_inplace_op</a></div><div class="ttdeci">#define bfloat_inplace_op(itype)</div><div class="ttdef"><b>Definition</b> bf16.h:208</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a6aedc8d6d0980134ac69b96f22d9a855"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a6aedc8d6d0980134ac69b96f22d9a855">operator-</a></div><div class="ttdeci">constexpr METAL_FUNC _MLX_BFloat16 operator-(_MLX_BFloat16 x)</div><div class="ttdef"><b>Definition</b> bf16.h:129</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a7694892a131c0e31e5153c088cccb707"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7694892a131c0e31e5153c088cccb707">bfloat_binop</a></div><div class="ttdeci">#define bfloat_binop(_op_, _operator_)</div><div class="ttdef"><b>Definition</b> bf16.h:150</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a7782de82393104dd4ad754ce3b316e82"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a></div><div class="ttdeci">struct _MLX_BFloat16 bfloat16_t</div><div class="ttdef"><b>Definition</b> bf16.h:251</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a7e5992f7fcd8f2cdadcc1d7f6aefbb5a"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7e5992f7fcd8f2cdadcc1d7f6aefbb5a">can_convert_from_bfloat</a></div><div class="ttdeci">static constexpr constant bool can_convert_from_bfloat</div><div class="ttdef"><b>Definition</b> bf16.h:41</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a8d066e48cf3e2a0583c71816fa40f7f4"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4">uint16_to_bfloat16</a></div><div class="ttdeci">bfloat16_t uint16_to_bfloat16(const uint16_t x)</div><div class="ttdef"><b>Definition</b> bf16.h:312</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_aae77817d261452b2f001f4d947a3e04e"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#aae77817d261452b2f001f4d947a3e04e">can_convert_to_bfloat</a></div><div class="ttdeci">static constexpr constant bool can_convert_to_bfloat</div><div class="ttdef"><b>Definition</b> bf16.h:37</div></div>
|
||||
@@ -478,20 +493,31 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astruct___m_l_x___b_float16_html_ad2701d003e8fad168c89abc3907c6e53"><div class="ttname"><a href="struct___m_l_x___b_float16.html#ad2701d003e8fad168c89abc3907c6e53">_MLX_BFloat16::_MLX_BFloat16</a></div><div class="ttdeci">constexpr METAL_FUNC _MLX_BFloat16(T x) device</div><div class="ttdef"><b>Definition</b> bf16.h:82</div></div>
|
||||
<div class="ttc" id="astruct___m_l_x___b_float16_html_adeb880f31121c6dc40ce47765c6c7455"><div class="ttname"><a href="struct___m_l_x___b_float16.html#adeb880f31121c6dc40ce47765c6c7455">_MLX_BFloat16::_MLX_BFloat16</a></div><div class="ttdeci">constexpr METAL_FUNC _MLX_BFloat16(T x) threadgroup</div><div class="ttdef"><b>Definition</b> bf16.h:76</div></div>
|
||||
<div class="ttc" id="astruct___m_l_x___b_float16_html_aec7fa716fd621ce1843338027bcb0118"><div class="ttname"><a href="struct___m_l_x___b_float16.html#aec7fa716fd621ce1843338027bcb0118">_MLX_BFloat16::_MLX_BFloat16</a></div><div class="ttdeci">constexpr METAL_FUNC _MLX_BFloat16(T x) const ant</div><div class="ttdef"><b>Definition</b> bf16.h:88</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a0f48dd0c8a2d2dfa825067fb212b2e6b"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b">metal::_numeric_limits_impl< bfloat16_t >::digits10</a></div><div class="ttdeci">static constexpr constant int digits10</div><div class="ttdef"><b>Definition</b> bf16.h:264</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a13829f8c7a7c0efdc8946eff5d3c9470"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a13829f8c7a7c0efdc8946eff5d3c9470">metal::_numeric_limits_impl< bfloat16_t >::min_exponent</a></div><div class="ttdeci">static constexpr constant int min_exponent</div><div class="ttdef"><b>Definition</b> bf16.h:267</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a61bb136f819fa392c50bdf3c38f3aad2"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61bb136f819fa392c50bdf3c38f3aad2">metal::_numeric_limits_impl< bfloat16_t >::max_exponent</a></div><div class="ttdeci">static constexpr constant int max_exponent</div><div class="ttdef"><b>Definition</b> bf16.h:269</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a61eb741e7af49046beb863abf023b206"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206">metal::_numeric_limits_impl< bfloat16_t >::infinity</a></div><div class="ttdeci">static constexpr bfloat16_t infinity()</div><div class="ttdef"><b>Definition</b> bf16.h:287</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a6a9dbcba4dd79cad50876dda506b9eed"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed">metal::_numeric_limits_impl< bfloat16_t >::denorm_min</a></div><div class="ttdeci">static constexpr bfloat16_t denorm_min()</div><div class="ttdef"><b>Definition</b> bf16.h:296</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a76bfb2deb0e0afc011f77bf5a6d0ed94"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a76bfb2deb0e0afc011f77bf5a6d0ed94">metal::_numeric_limits_impl< bfloat16_t >::max_exponent10</a></div><div class="ttdeci">static constexpr constant int max_exponent10</div><div class="ttdef"><b>Definition</b> bf16.h:270</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a8d3905e6f158379a0c52682266e8d0e2"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a8d3905e6f158379a0c52682266e8d0e2">metal::_numeric_limits_impl< bfloat16_t >::max_digits10</a></div><div class="ttdeci">static constexpr constant int max_digits10</div><div class="ttdef"><b>Definition</b> bf16.h:265</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a92320d40a58218e40cc414986ac95c50"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a92320d40a58218e40cc414986ac95c50">metal::_numeric_limits_impl< bfloat16_t >::max</a></div><div class="ttdeci">static constexpr bfloat16_t max()</div><div class="ttdef"><b>Definition</b> bf16.h:278</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_a96c4197e3076f0aa9065370b8ece49ca"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca">metal::_numeric_limits_impl< bfloat16_t >::epsilon</a></div><div class="ttdeci">static constexpr bfloat16_t epsilon()</div><div class="ttdef"><b>Definition</b> bf16.h:281</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_aaefa8c2cadd11ac7e22f7b2c5edbd1cd"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aaefa8c2cadd11ac7e22f7b2c5edbd1cd">metal::_numeric_limits_impl< bfloat16_t >::radix</a></div><div class="ttdeci">static constexpr constant int radix</div><div class="ttdef"><b>Definition</b> bf16.h:266</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_ad1f76a43c7d51a3765174aa6e0dd9f80"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80">metal::_numeric_limits_impl< bfloat16_t >::signaling_NaN</a></div><div class="ttdeci">static constexpr bfloat16_t signaling_NaN()</div><div class="ttdef"><b>Definition</b> bf16.h:293</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_adaed80031f5ca0ff69d30ec4c5d0c98f"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#adaed80031f5ca0ff69d30ec4c5d0c98f">metal::_numeric_limits_impl< bfloat16_t >::min</a></div><div class="ttdeci">static constexpr bfloat16_t min()</div><div class="ttdef"><b>Definition</b> bf16.h:272</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_ae81c58b8223e504965183c99d19a2116"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ae81c58b8223e504965183c99d19a2116">metal::_numeric_limits_impl< bfloat16_t >::lowest</a></div><div class="ttdeci">static constexpr bfloat16_t lowest()</div><div class="ttdef"><b>Definition</b> bf16.h:275</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_aeaed172780720e06b8731cef3177e277"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aeaed172780720e06b8731cef3177e277">metal::_numeric_limits_impl< bfloat16_t >::min_exponent10</a></div><div class="ttdeci">static constexpr constant int min_exponent10</div><div class="ttdef"><b>Definition</b> bf16.h:268</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_aebeb07c01984be246bc2d1b8f8e4ac7b"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b">metal::_numeric_limits_impl< bfloat16_t >::quiet_NaN</a></div><div class="ttdeci">static constexpr bfloat16_t quiet_NaN()</div><div class="ttdef"><b>Definition</b> bf16.h:290</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_af6a681edff230c8d734a1feefb8d1879"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879">metal::_numeric_limits_impl< bfloat16_t >::digits</a></div><div class="ttdeci">static constexpr constant int digits</div><div class="ttdef"><b>Definition</b> bf16.h:263</div></div>
|
||||
<div class="ttc" id="astructmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4_html_afa223448fa4f04c1113a85345dd720c3"><div class="ttname"><a href="structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3">metal::_numeric_limits_impl< bfloat16_t >::round_error</a></div><div class="ttdeci">static constexpr bfloat16_t round_error()</div><div class="ttdef"><b>Definition</b> bf16.h:284</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_d36f9e79442ec4bd53287b83bdefe7e5.html">metal_3_0</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html">bf16.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/metal_3_1/bf16.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2metal__3__1_2bf16_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_83367edb60e23ad59b1a493d8c883287.html">metal_3_1</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
@@ -144,7 +158,7 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -169,7 +183,7 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -177,10 +191,13 @@ Functions</h2></td></tr>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_83367edb60e23ad59b1a493d8c883287.html">metal_3_1</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html">bf16.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
var backend_2metal_2kernels_2metal__3__1_2bf16_8h =
|
||||
[
|
||||
[ "bfloat16_t", "backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e", null ],
|
||||
[ "bfloat16_to_uint16", "backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088", null ],
|
||||
[ "uint16_to_bfloat16", "backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4", null ]
|
||||
];
|
||||
+45
-29
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/metal_3_1/bf16.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2metal__3__1_2bf16_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_83367edb60e23ad59b1a493d8c883287.html">metal_3_1</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">bf16.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -99,28 +113,30 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacemetal.html">metal</a>;</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e"> 9</a></span><span class="keyword">typedef</span> bfloat <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e">bfloat16_t</a>;</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e"> 9</a></span><span class="keyword">typedef</span> bfloat <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a>;</div>
|
||||
<div class="foldopen" id="foldopen00010" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088"> 10</a></span><span class="keyword">inline</span> uint16_t <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088">bfloat16_to_uint16</a>(<span class="keyword">const</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> x) {</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088"> 10</a></span><span class="keyword">inline</span> uint16_t <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088">bfloat16_to_uint16</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> x) {</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keywordflow">return</span> as_type<uint16_t>(x);</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="foldopen" id="foldopen00014" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4"> 14</a></span><span class="keyword">inline</span> <a class="code hl_struct" href="struct___m_l_x___b_float16.html">bfloat16_t</a> <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4">uint16_to_bfloat16</a>(<span class="keyword">const</span> uint16_t x) {</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4"> 14</a></span><span class="keyword">inline</span> <a class="code hl_typedef" href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a> <a class="code hl_function" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4">uint16_to_bfloat16</a>(<span class="keyword">const</span> uint16_t x) {</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <span class="keywordflow">return</span> as_type<bfloat16_t>(x);</div>
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span>}</div>
|
||||
</div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__0_2bf16_8h_html_a7782de82393104dd4ad754ce3b316e82"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__0_2bf16_8h.html#a7782de82393104dd4ad754ce3b316e82">bfloat16_t</a></div><div class="ttdeci">struct _MLX_BFloat16 bfloat16_t</div><div class="ttdef"><b>Definition</b> bf16.h:251</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__1_2bf16_8h_html_a1420e191fa60d707dce327d0938e3088"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a1420e191fa60d707dce327d0938e3088">bfloat16_to_uint16</a></div><div class="ttdeci">uint16_t bfloat16_to_uint16(const bfloat16_t x)</div><div class="ttdef"><b>Definition</b> bf16.h:10</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__1_2bf16_8h_html_a58e15a77da988b9104fee00cdf8b280e"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a58e15a77da988b9104fee00cdf8b280e">bfloat16_t</a></div><div class="ttdeci">bfloat bfloat16_t</div><div class="ttdef"><b>Definition</b> bf16.h:9</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2metal__3__1_2bf16_8h_html_a8d066e48cf3e2a0583c71816fa40f7f4"><div class="ttname"><a href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html#a8d066e48cf3e2a0583c71816fa40f7f4">uint16_to_bfloat16</a></div><div class="ttdeci">bfloat16_t uint16_to_bfloat16(const uint16_t x)</div><div class="ttdef"><b>Definition</b> bf16.h:14</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html"><div class="ttname"><a href="namespacemetal.html">metal</a></div><div class="ttdef"><b>Definition</b> bf16_math.h:226</div></div>
|
||||
<div class="ttc" id="astruct___m_l_x___b_float16_html"><div class="ttname"><a href="struct___m_l_x___b_float16.html">_MLX_BFloat16</a></div><div class="ttdef"><b>Definition</b> bf16.h:48</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_83367edb60e23ad59b1a493d8c883287.html">metal_3_1</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2metal__3__1_2bf16_8h.html">bf16.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+43
-26
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/reduction/ops.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2reduction_2ops_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_f60cd69d27fd3faa641c79056fff0e2d.html">reduction</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -157,7 +171,7 @@ Variables</h2></td></tr>
|
||||
<div class="line"> <span class="keywordflow">return</span> val; \</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2reduction_2ops_8h_html_a515b75d563a93d3c09ee677948dc83e3"><div class="ttname"><a href="#a515b75d563a93d3c09ee677948dc83e3">simd_size</a></div><div class="ttdeci">static constant constexpr const uint8_t simd_size</div><div class="ttdef"><b>Definition</b> ops.h:22</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2utils_8h_html_aba6279624b1d30c525efee856a222b5c"><div class="ttname"><a href="backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c">simd_shuffle_down</a></div><div class="ttdeci">uint64_t simd_shuffle_down(uint64_t data, uint16_t delta)</div><div class="ttdef"><b>Definition</b> utils.h:346</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2utils_8h_html_aba6279624b1d30c525efee856a222b5c"><div class="ttname"><a href="backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c">simd_shuffle_down</a></div><div class="ttdeci">uint64_t simd_shuffle_down(uint64_t data, uint16_t delta)</div><div class="ttdef"><b>Definition</b> utils.h:335</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
@@ -177,7 +191,7 @@ Variables</h2></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel static">static</span><span class="mlabel constexpr">constexpr</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -185,10 +199,13 @@ Variables</h2></td></tr>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_f60cd69d27fd3faa641c79056fff0e2d.html">reduction</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2reduction_2ops_8h.html">ops.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
var backend_2metal_2kernels_2reduction_2ops_8h =
|
||||
[
|
||||
[ "bool4_or_uint", "unionbool4__or__uint.html", "unionbool4__or__uint" ],
|
||||
[ "None", "struct_none.html", "struct_none" ],
|
||||
[ "And< U >", "struct_and.html", null ],
|
||||
[ "Or< U >", "struct_or.html", null ],
|
||||
[ "Sum< U >", "struct_sum.html", null ],
|
||||
[ "Prod< U >", "struct_prod.html", null ],
|
||||
[ "Min< U >", "struct_min.html", null ],
|
||||
[ "Max< U >", "struct_max.html", "struct_max" ],
|
||||
[ "DEFINE_SIMD_REDUCE", "backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05", null ],
|
||||
[ "simd_size", "backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3", null ]
|
||||
];
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/reduction/ops.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2reduction_2ops_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_f60cd69d27fd3faa641c79056fff0e2d.html">reduction</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">ops.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -278,7 +292,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> simd_min(val);</div>
|
||||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
|
||||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant U init = <a class="code hl_struct" href="struct_limits.html">Limits<U>::max</a>;</div>
|
||||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant U init = <a class="code hl_variable" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits<U>::max</a>;</div>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">void</span> atomic_update(device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic<T></a>* out, T val, <span class="keywordtype">size_t</span> offset = 0) {</div>
|
||||
@@ -302,7 +316,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> simd_max(val);</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> }</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant U init = <a class="code hl_struct" href="struct_limits.html">Limits<U>::min</a>;</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant U init = <a class="code hl_variable" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits<U>::min</a>;</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordtype">void</span> atomic_update(device <a class="code hl_struct" href="structmlx__atomic.html">mlx_atomic<T></a>* out, T val, <span class="keywordtype">size_t</span> offset = 0) {</div>
|
||||
@@ -325,7 +339,8 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2reduction_2ops_8h_html_a515b75d563a93d3c09ee677948dc83e3"><div class="ttname"><a href="backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3">simd_size</a></div><div class="ttdeci">static constant constexpr const uint8_t simd_size</div><div class="ttdef"><b>Definition</b> ops.h:22</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2reduction_2ops_8h_html_acacf99e0ba629ed062ccc3c2eba89b05"><div class="ttname"><a href="backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05">DEFINE_SIMD_REDUCE</a></div><div class="ttdeci">#define DEFINE_SIMD_REDUCE()</div><div class="ttdef"><b>Definition</b> ops.h:8</div></div>
|
||||
<div class="ttc" id="astruct_and_html"><div class="ttname"><a href="struct_and.html">And</a></div><div class="ttdef"><b>Definition</b> ops.h:37</div></div>
|
||||
<div class="ttc" id="astruct_limits_html"><div class="ttname"><a href="struct_limits.html">Limits</a></div><div class="ttdef"><b>Definition</b> utils.h:23</div></div>
|
||||
<div class="ttc" id="astruct_limits_html_a2f0673b6f9da89ce1d64f9f3d74f50a8"><div class="ttname"><a href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits::max</a></div><div class="ttdeci">static const constant U max</div><div class="ttdef"><b>Definition</b> utils.h:24</div></div>
|
||||
<div class="ttc" id="astruct_limits_html_a6e81584ba65a4dc6ff9366b458e3a20e"><div class="ttname"><a href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits::min</a></div><div class="ttdeci">static const constant U min</div><div class="ttdef"><b>Definition</b> utils.h:25</div></div>
|
||||
<div class="ttc" id="astruct_max_html"><div class="ttname"><a href="struct_max.html">Max</a></div><div class="ttdef"><b>Definition</b> ops.h:185</div></div>
|
||||
<div class="ttc" id="astruct_max_html_adfee65117dbf49404241861d374b9c4d"><div class="ttname"><a href="struct_max.html#adfee65117dbf49404241861d374b9c4d">Max::a</a></div><div class="ttdeci">b a</div><div class="ttdef"><b>Definition</b> ops.h:202</div></div>
|
||||
<div class="ttc" id="astruct_min_html"><div class="ttname"><a href="struct_min.html">Min</a></div><div class="ttdef"><b>Definition</b> ops.h:163</div></div>
|
||||
@@ -339,10 +354,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="aunionbool4__or__uint_html_a47d77eac47598fe420f8f04a615f76ca"><div class="ttname"><a href="unionbool4__or__uint.html#a47d77eac47598fe420f8f04a615f76ca">bool4_or_uint::b</a></div><div class="ttdeci">bool4 b</div><div class="ttdef"><b>Definition</b> ops.h:25</div></div>
|
||||
<div class="ttc" id="aunionbool4__or__uint_html_ab24d95aaf4203ddf3e6b1ed19397ced7"><div class="ttname"><a href="unionbool4__or__uint.html#ab24d95aaf4203ddf3e6b1ed19397ced7">bool4_or_uint::i</a></div><div class="ttdeci">unsigned int i</div><div class="ttdef"><b>Definition</b> ops.h:26</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_f60cd69d27fd3faa641c79056fff0e2d.html">reduction</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2reduction_2ops_8h.html">ops.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/transforms.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -119,10 +133,13 @@ Namespaces</h2></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2attn_2transforms_8h.html">transforms.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
var backend_2metal_2kernels_2steel_2attn_2transforms_8h =
|
||||
[
|
||||
[ "mlx::steel::TransformNone< OutT, InT >", "structmlx_1_1steel_1_1_transform_none.html", "structmlx_1_1steel_1_1_transform_none" ],
|
||||
[ "mlx::steel::TransformAdd< OutT, InT >", "structmlx_1_1steel_1_1_transform_add.html", "structmlx_1_1steel_1_1_transform_add" ],
|
||||
[ "mlx::steel::TransformAxpby< OutT, InT >", "structmlx_1_1steel_1_1_transform_axpby.html", "structmlx_1_1steel_1_1_transform_axpby" ],
|
||||
[ "mlx::steel::AccumHelper< T >", "structmlx_1_1steel_1_1_accum_helper.html", "structmlx_1_1steel_1_1_accum_helper" ],
|
||||
[ "mlx::steel::BlockSwizzle", "structmlx_1_1steel_1_1_block_swizzle.html", "structmlx_1_1steel_1_1_block_swizzle" ]
|
||||
];
|
||||
+46
-27
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/attn/transforms.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2steel_2attn_2transforms_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">transforms.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -96,14 +110,14 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "<a class="code" href="backend_2metal_2kernels_2steel_2utils_8h.html">mlx/backend/metal/kernels/steel/utils.h</a>"</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">// Transforms and Epilogues</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx.html">mlx</a> {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>steel {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">template</span> <<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT></div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">struct </span>TransformNone {</div>
|
||||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_none.html">TransformNone</a> {</div>
|
||||
<div class="foldopen" id="foldopen00016" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75"> 16</a></span> <span class="keyword">static</span> METAL_FUNC OutT <a class="code hl_function" href="structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75">apply</a>(InT x) {</div>
|
||||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>OutT<span class="keyword">></span>(x);</div>
|
||||
@@ -177,6 +191,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>} <span class="comment">// namespace steel</span></div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>} <span class="comment">// namespace mlx</span></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2steel_2utils_8h_html"><div class="ttname"><a href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
|
||||
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html_ae52abf69e7ba6af1a73d65d57182ed26"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">mlx::steel::AccumHelper::accum_type</a></div><div class="ttdeci">float accum_type</div><div class="ttdef"><b>Definition</b> transforms.h:57</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html">mlx::steel::BlockSwizzle</a></div><div class="ttdef"><b>Definition</b> transforms.h:60</div></div>
|
||||
@@ -189,13 +204,17 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html_aaf3a45e25d7abf7a34b48cc612e631ba"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html#aaf3a45e25d7abf7a34b48cc612e631ba">mlx::steel::TransformAxpby::apply</a></div><div class="ttdeci">METAL_FUNC OutT apply(InT x, OutT c) const</div><div class="ttdef"><b>Definition</b> transforms.h:50</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html_ab3223b49c6b3b7f89eba91aeaff9dcff"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff">mlx::steel::TransformAxpby::alpha</a></div><div class="ttdeci">const float alpha</div><div class="ttdef"><b>Definition</b> transforms.h:40</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html_ad7d11c53de13646b725921391d15bbe9"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9">mlx::steel::TransformAxpby::TransformAxpby</a></div><div class="ttdeci">TransformAxpby(const float alpha_, const float beta_)</div><div class="ttdef"><b>Definition</b> transforms.h:43</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html">mlx::steel::TransformNone</a></div><div class="ttdef"><b>Definition</b> transforms.h:15</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html_a84daa89be5b3348b5715bf8c5a01da75"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75">mlx::steel::TransformNone::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x)</div><div class="ttdef"><b>Definition</b> transforms.h:16</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html_ae4c397038f386b13eaa386638a0fce90"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html#ae4c397038f386b13eaa386638a0fce90">mlx::steel::TransformNone::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x, OutT)</div><div class="ttdef"><b>Definition</b> transforms.h:20</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_e1756c7634b0c14aead026895ad71c6d.html">attn</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2attn_2transforms_8h.html">transforms.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/gemm/transforms.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_6768c99e6145fb9510ccdb40db8ede25.html">gemm</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -119,10 +133,13 @@ Namespaces</h2></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_6768c99e6145fb9510ccdb40db8ede25.html">gemm</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html">transforms.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
var backend_2metal_2kernels_2steel_2gemm_2transforms_8h =
|
||||
[
|
||||
[ "mlx::steel::TransformNone< OutT, InT >", "structmlx_1_1steel_1_1_transform_none.html", "structmlx_1_1steel_1_1_transform_none" ],
|
||||
[ "mlx::steel::TransformAdd< OutT, InT >", "structmlx_1_1steel_1_1_transform_add.html", "structmlx_1_1steel_1_1_transform_add" ],
|
||||
[ "mlx::steel::TransformAxpby< OutT, InT >", "structmlx_1_1steel_1_1_transform_axpby.html", "structmlx_1_1steel_1_1_transform_axpby" ],
|
||||
[ "mlx::steel::AccumHelper< T >", "structmlx_1_1steel_1_1_accum_helper.html", "structmlx_1_1steel_1_1_accum_helper" ],
|
||||
[ "mlx::steel::BlockSwizzle", "structmlx_1_1steel_1_1_block_swizzle.html", "structmlx_1_1steel_1_1_block_swizzle" ]
|
||||
];
|
||||
+47
-31
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/gemm/transforms.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2steel_2gemm_2transforms_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_6768c99e6145fb9510ccdb40db8ede25.html">gemm</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">transforms.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -96,11 +110,11 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#pragma once</span></div>
|
||||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "<a class="code" href="backend_2metal_2kernels_2steel_2utils_8h.html">mlx/backend/metal/kernels/steel/utils.h</a>"</span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span></div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">// Transforms and Epilogues</span></div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx.html">mlx</a> {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>steel {</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacemlx_1_1steel.html">steel</a> {</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">template</span> <<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT></div>
|
||||
<div class="foldopen" id="foldopen00015" data-start="{" data-end="};">
|
||||
@@ -121,7 +135,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">template</span> <<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT></div>
|
||||
<div class="foldopen" id="foldopen00026" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_add.html"> 26</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_add.html">TransformAdd</a> {</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_add.html"> 26</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">TransformAdd</a> {</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae"> 27</a></span> <a class="code hl_function" href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">TransformAdd</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>, <span class="keyword">const</span> <span class="keywordtype">float</span>) {}</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="foldopen" id="foldopen00029" data-start="{" data-end="}">
|
||||
@@ -140,7 +154,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">template</span> <<span class="keyword">typename</span> OutT, <span class="keyword">typename</span> InT></div>
|
||||
<div class="foldopen" id="foldopen00039" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_axpby.html"> 39</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_transform_axpby.html">TransformAxpby</a> {</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_transform_axpby.html"> 39</a></span><span class="keyword">struct </span><a class="code hl_function" href="structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9">TransformAxpby</a> {</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff">alpha</a>;</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6">beta</a>;</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
@@ -166,7 +180,7 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
||||
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_accum_helper.html"> 56</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1steel_1_1_accum_helper.html">AccumHelper</a> {</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">accum_type</a>;</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26"> 57</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code hl_typedef" href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">accum_type</a>;</div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
@@ -187,16 +201,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>} <span class="comment">// namespace steel</span></div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>} <span class="comment">// namespace mlx</span></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2steel_2utils_8h_html"><div class="ttname"><a href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1steel_html"><div class="ttname"><a href="namespacemlx_1_1steel.html">mlx::steel</a></div><div class="ttdef"><b>Definition</b> attn.h:19</div></div>
|
||||
<div class="ttc" id="anamespacemlx_html"><div class="ttname"><a href="namespacemlx.html">mlx</a></div><div class="ttdef"><b>Definition</b> allocator.h:7</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html">mlx::steel::AccumHelper</a></div><div class="ttdef"><b>Definition</b> transforms.h:56</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_accum_helper_html_ae52abf69e7ba6af1a73d65d57182ed26"><div class="ttname"><a href="structmlx_1_1steel_1_1_accum_helper.html#ae52abf69e7ba6af1a73d65d57182ed26">mlx::steel::AccumHelper::accum_type</a></div><div class="ttdeci">float accum_type</div><div class="ttdef"><b>Definition</b> transforms.h:57</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html">mlx::steel::BlockSwizzle</a></div><div class="ttdef"><b>Definition</b> transforms.h:60</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_block_swizzle_html_a98e558d63826d2aaa06d3e65a06d2760"><div class="ttname"><a href="structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760">mlx::steel::BlockSwizzle::swizzle</a></div><div class="ttdeci">static METAL_FUNC int2 swizzle(uint3 tid, const int swizzle_log)</div><div class="ttdef"><b>Definition</b> transforms.h:62</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_add_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_add.html">mlx::steel::TransformAdd</a></div><div class="ttdef"><b>Definition</b> transforms.h:26</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_add_html_a4923b0059d88099b2739f2cf0273ea19"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_add.html#a4923b0059d88099b2739f2cf0273ea19">mlx::steel::TransformAdd::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x, OutT c)</div><div class="ttdef"><b>Definition</b> transforms.h:33</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_add_html_a7c1b7292910b74281e5296b3dac157ae"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae">mlx::steel::TransformAdd::TransformAdd</a></div><div class="ttdeci">TransformAdd(const float, const float)</div><div class="ttdef"><b>Definition</b> transforms.h:27</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_add_html_afbb688d84443fd622b4dd2768cfe0acf"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_add.html#afbb688d84443fd622b4dd2768cfe0acf">mlx::steel::TransformAdd::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x)</div><div class="ttdef"><b>Definition</b> transforms.h:29</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html">mlx::steel::TransformAxpby</a></div><div class="ttdef"><b>Definition</b> transforms.h:39</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html_a14ad48b0189d6bdde06c66f1b567ae87"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html#a14ad48b0189d6bdde06c66f1b567ae87">mlx::steel::TransformAxpby::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x)</div><div class="ttdef"><b>Definition</b> transforms.h:46</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html_a5fc726f085bafd1acbc391886f7fb8b6"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html#a5fc726f085bafd1acbc391886f7fb8b6">mlx::steel::TransformAxpby::beta</a></div><div class="ttdeci">const float beta</div><div class="ttdef"><b>Definition</b> transforms.h:41</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_axpby_html_aaf3a45e25d7abf7a34b48cc612e631ba"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_axpby.html#aaf3a45e25d7abf7a34b48cc612e631ba">mlx::steel::TransformAxpby::apply</a></div><div class="ttdeci">METAL_FUNC OutT apply(InT x, OutT c) const</div><div class="ttdef"><b>Definition</b> transforms.h:50</div></div>
|
||||
@@ -206,10 +219,13 @@ $(function(){ initResizable(false); });
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html_a84daa89be5b3348b5715bf8c5a01da75"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75">mlx::steel::TransformNone::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x)</div><div class="ttdef"><b>Definition</b> transforms.h:16</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1steel_1_1_transform_none_html_ae4c397038f386b13eaa386638a0fce90"><div class="ttname"><a href="structmlx_1_1steel_1_1_transform_none.html#ae4c397038f386b13eaa386638a0fce90">mlx::steel::TransformNone::apply</a></div><div class="ttdeci">static METAL_FUNC OutT apply(InT x, OutT)</div><div class="ttdef"><b>Definition</b> transforms.h:20</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="dir_6768c99e6145fb9510ccdb40db8ede25.html">gemm</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html">transforms.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+54
-37
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/utils.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2steel_2utils_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
@@ -99,14 +113,14 @@ $(function(){ initResizable(false); });
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:aaf4974425147d6f26d031691e321637f" id="r_aaf4974425147d6f26d031691e321637f"><td class="memItemLeft" align="right" valign="top">METAL_FUNC ulong2 </td><td class="memItemRight" valign="bottom"><a class="el" href="#aaf4974425147d6f26d031691e321637f">elem_to_loc_broadcast</a> (uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim)</td></tr>
|
||||
<tr class="separator:aaf4974425147d6f26d031691e321637f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a42bd57d203a40d3d7d429f2333590a3c" id="r_a42bd57d203a40d3d7d429f2333590a3c"><td class="memItemLeft" align="right" valign="top">METAL_FUNC ulong3 </td><td class="memItemRight" valign="bottom"><a class="el" href="#a42bd57d203a40d3d7d429f2333590a3c">elem_to_loc_broadcast</a> (uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const size_t *c_strides, int ndim)</td></tr>
|
||||
<tr class="separator:a42bd57d203a40d3d7d429f2333590a3c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af62bacceef7d93f8c1ba4fcf5b1adfe6" id="r_af62bacceef7d93f8c1ba4fcf5b1adfe6"><td class="memItemLeft" align="right" valign="top">METAL_FUNC ulong2 </td><td class="memItemRight" valign="bottom"><a class="el" href="#af62bacceef7d93f8c1ba4fcf5b1adfe6">elem_to_loc_broadcast</a> (uint elem, constant const int *shape, constant const int64_t *a_strides, constant const int64_t *b_strides, int ndim)</td></tr>
|
||||
<tr class="separator:af62bacceef7d93f8c1ba4fcf5b1adfe6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a32e15e82a0534d2647b927949860d0fe" id="r_a32e15e82a0534d2647b927949860d0fe"><td class="memItemLeft" align="right" valign="top">METAL_FUNC ulong3 </td><td class="memItemRight" valign="bottom"><a class="el" href="#a32e15e82a0534d2647b927949860d0fe">elem_to_loc_broadcast</a> (uint elem, constant const int *shape, constant const int64_t *a_strides, constant const int64_t *b_strides, constant const int64_t *c_strides, int ndim)</td></tr>
|
||||
<tr class="separator:a32e15e82a0534d2647b927949860d0fe"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a42bd57d203a40d3d7d429f2333590a3c" name="a42bd57d203a40d3d7d429f2333590a3c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a42bd57d203a40d3d7d429f2333590a3c">◆ </a></span>elem_to_loc_broadcast() <span class="overload">[1/2]</span></h2>
|
||||
<a id="a32e15e82a0534d2647b927949860d0fe" name="a32e15e82a0534d2647b927949860d0fe"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a32e15e82a0534d2647b927949860d0fe">◆ </a></span>elem_to_loc_broadcast() <span class="overload">[1/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
@@ -124,17 +138,17 @@ Functions</h2></td></tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>c_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>c_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -146,8 +160,8 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aaf4974425147d6f26d031691e321637f" name="aaf4974425147d6f26d031691e321637f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aaf4974425147d6f26d031691e321637f">◆ </a></span>elem_to_loc_broadcast() <span class="overload">[2/2]</span></h2>
|
||||
<a id="af62bacceef7d93f8c1ba4fcf5b1adfe6" name="af62bacceef7d93f8c1ba4fcf5b1adfe6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af62bacceef7d93f8c1ba4fcf5b1adfe6">◆ </a></span>elem_to_loc_broadcast() <span class="overload">[2/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
@@ -165,12 +179,12 @@ Functions</h2></td></tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -183,10 +197,13 @@ Functions</h2></td></tr>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
var backend_2metal_2kernels_2steel_2utils_8h =
|
||||
[
|
||||
[ "elem_to_loc_broadcast", "backend_2metal_2kernels_2steel_2utils_8h.html#a32e15e82a0534d2647b927949860d0fe", null ],
|
||||
[ "elem_to_loc_broadcast", "backend_2metal_2kernels_2steel_2utils_8h.html#af62bacceef7d93f8c1ba4fcf5b1adfe6", null ]
|
||||
];
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/steel/utils.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2steel_2utils_8h_source.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle"><div class="title">utils.h</div></div>
|
||||
</div><!--header-->
|
||||
@@ -98,11 +112,11 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <metal_stdlib></span></div>
|
||||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||
<div class="foldopen" id="foldopen00007" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f"> 7</a></span>METAL_FUNC ulong2 <a class="code hl_function" href="backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f">elem_to_loc_broadcast</a>(</div>
|
||||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2steel_2utils_8h.html#af62bacceef7d93f8c1ba4fcf5b1adfe6"> 7</a></span>METAL_FUNC ulong2 <a class="code hl_function" href="backend_2metal_2kernels_2steel_2utils_8h.html#af62bacceef7d93f8c1ba4fcf5b1adfe6">elem_to_loc_broadcast</a>(</div>
|
||||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> uint elem,</div>
|
||||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> constant <span class="keyword">const</span> <span class="keywordtype">int</span>* shape,</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> constant <span class="keyword">const</span> <span class="keywordtype">size_t</span>* a_strides,</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> constant <span class="keyword">const</span> <span class="keywordtype">size_t</span>* b_strides,</div>
|
||||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> constant <span class="keyword">const</span> int64_t* a_strides,</div>
|
||||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> constant <span class="keyword">const</span> int64_t* b_strides,</div>
|
||||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">int</span> ndim) {</div>
|
||||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> ulong loc_a{0};</div>
|
||||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> ulong loc_b{0};</div>
|
||||
@@ -117,12 +131,12 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||
<div class="foldopen" id="foldopen00024" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2steel_2utils_8h.html#a42bd57d203a40d3d7d429f2333590a3c"> 24</a></span>METAL_FUNC ulong3 <a class="code hl_function" href="backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f">elem_to_loc_broadcast</a>(</div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="backend_2metal_2kernels_2steel_2utils_8h.html#a32e15e82a0534d2647b927949860d0fe"> 24</a></span>METAL_FUNC ulong3 <a class="code hl_function" href="backend_2metal_2kernels_2steel_2utils_8h.html#af62bacceef7d93f8c1ba4fcf5b1adfe6">elem_to_loc_broadcast</a>(</div>
|
||||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> uint elem,</div>
|
||||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> constant <span class="keyword">const</span> <span class="keywordtype">int</span>* shape,</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> constant <span class="keyword">const</span> <span class="keywordtype">size_t</span>* a_strides,</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> constant <span class="keyword">const</span> <span class="keywordtype">size_t</span>* b_strides,</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> constant <span class="keyword">const</span> <span class="keywordtype">size_t</span>* c_strides,</div>
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> constant <span class="keyword">const</span> int64_t* a_strides,</div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> constant <span class="keyword">const</span> int64_t* b_strides,</div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> constant <span class="keyword">const</span> int64_t* c_strides,</div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">int</span> ndim) {</div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> ulong loc_a{0};</div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> ulong loc_b{0};</div>
|
||||
@@ -137,12 +151,15 @@ $(function(){ initResizable(false); });
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> ulong3(loc_a, loc_b, loc_c);</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>}</div>
|
||||
</div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2steel_2utils_8h_html_aaf4974425147d6f26d031691e321637f"><div class="ttname"><a href="backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f">elem_to_loc_broadcast</a></div><div class="ttdeci">METAL_FUNC ulong2 elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim)</div><div class="ttdef"><b>Definition</b> utils.h:7</div></div>
|
||||
<div class="ttc" id="abackend_2metal_2kernels_2steel_2utils_8h_html_af62bacceef7d93f8c1ba4fcf5b1adfe6"><div class="ttname"><a href="backend_2metal_2kernels_2steel_2utils_8h.html#af62bacceef7d93f8c1ba4fcf5b1adfe6">elem_to_loc_broadcast</a></div><div class="ttdeci">METAL_FUNC ulong2 elem_to_loc_broadcast(uint elem, constant const int *shape, constant const int64_t *a_strides, constant const int64_t *b_strides, int ndim)</div><div class="ttdef"><b>Definition</b> utils.h:7</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="dir_76215a6c54e2b67053e723fc2395583c.html">steel</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2steel_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+141
-162
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/kernels/utils.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2kernels_2utils_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
@@ -108,41 +122,41 @@ $(function(){ initResizable(false); });
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< U ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint8__t_01_4.html">Limits< uint8_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< uint8_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint16__t_01_4.html">Limits< uint16_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< uint16_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint32__t_01_4.html">Limits< uint32_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< uint32_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01uint64__t_01_4.html">Limits< uint64_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< uint64_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int8__t_01_4.html">Limits< int8_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< int8_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int16__t_01_4.html">Limits< int16_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< int16_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int32__t_01_4.html">Limits< int32_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< int32_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01int64__t_01_4.html">Limits< int64_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< int64_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01half_01_4.html">Limits< half ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< half ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01float_01_4.html">Limits< float ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< float ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01bfloat16__t_01_4.html">Limits< bfloat16_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< bfloat16_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01bool_01_4.html">Limits< bool ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< bool ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits_3_01complex64__t_01_4.html">Limits< complex64_t ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_limits.html">Limits< complex64_t ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc.html">LoopedElemToLoc< DIM, OffsetT, General ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01true_01_4.html">LoopedElemToLoc< 1, OffsetT, true ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc.html">LoopedElemToLoc< 1, OffsetT, true ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc_3_011_00_01_offset_t_00_01false_01_4.html">LoopedElemToLoc< 1, OffsetT, false ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_looped_elem_to_loc.html">LoopedElemToLoc< 1, OffsetT, false ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_conditional_type.html">ConditionalType< condition, T, U ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_conditional_type_3_01true_00_01_t_00_01_u_01_4.html">ConditionalType< true, T, U ></a></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_conditional_type.html">ConditionalType< true, T, U ></a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
||||
@@ -161,31 +175,28 @@ Typedefs</h2></td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a22eaa505dbc7dd2a63a895f2e16712f5" id="r_a22eaa505dbc7dd2a63a895f2e16712f5"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:a22eaa505dbc7dd2a63a895f2e16712f5"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a22eaa505dbc7dd2a63a895f2e16712f5">elem_to_loc</a> (uint elem, constant const int *shape, constant const StrideT *strides, int ndim)</td></tr>
|
||||
<tr class="separator:a22eaa505dbc7dd2a63a895f2e16712f5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4b53fb0679f67f9063deba94753d4185" id="r_a4b53fb0679f67f9063deba94753d4185"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:a4b53fb0679f67f9063deba94753d4185"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a4b53fb0679f67f9063deba94753d4185">elem_to_loc</a> (StrideT elem, constant const int *shape, constant const StrideT *strides, int ndim)</td></tr>
|
||||
<tr class="separator:a4b53fb0679f67f9063deba94753d4185"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec82f4bf0e22b8d1b89ad654ad8d8753" id="r_aec82f4bf0e22b8d1b89ad654ad8d8753"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:aec82f4bf0e22b8d1b89ad654ad8d8753"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aec82f4bf0e22b8d1b89ad654ad8d8753">elem_to_loc</a> (uint3 elem, constant const int *shape, constant const StrideT *strides, int ndim)</td></tr>
|
||||
<tr class="separator:aec82f4bf0e22b8d1b89ad654ad8d8753"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac612d0ae30b8257198339debe04916a3" id="r_ac612d0ae30b8257198339debe04916a3"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:ac612d0ae30b8257198339debe04916a3"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ac612d0ae30b8257198339debe04916a3">elem_to_loc_1</a> (uint elem, constant const StrideT &stride)</td></tr>
|
||||
<tr class="separator:ac612d0ae30b8257198339debe04916a3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a43f33efc000962d6de881a3aab7458de" id="r_a43f33efc000962d6de881a3aab7458de"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:a43f33efc000962d6de881a3aab7458de"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a43f33efc000962d6de881a3aab7458de">elem_to_loc_2</a> (uint2 elem, constant const StrideT strides[2])</td></tr>
|
||||
<tr class="separator:a43f33efc000962d6de881a3aab7458de"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a650f8ea8cf9f9519da9e301aad0308dc" id="r_a650f8ea8cf9f9519da9e301aad0308dc"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:a650f8ea8cf9f9519da9e301aad0308dc"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a650f8ea8cf9f9519da9e301aad0308dc">elem_to_loc_3</a> (uint3 elem, constant const StrideT strides[3])</td></tr>
|
||||
<tr class="separator:a650f8ea8cf9f9519da9e301aad0308dc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a66a2d7eec0262b12db16cd6c781ccf9a" id="r_a66a2d7eec0262b12db16cd6c781ccf9a"><td class="memTemplParams" colspan="2">template<typename StrideT , typename IdxT = StrideT> </td></tr>
|
||||
<tr class="memitem:a66a2d7eec0262b12db16cd6c781ccf9a"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC vec< IdxT, 2 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a66a2d7eec0262b12db16cd6c781ccf9a">elem_to_loc_2_nd</a> (uint3 elem, constant const int *shape, constant const StrideT *a_strides, constant const StrideT *b_strides, int ndim)</td></tr>
|
||||
<tr class="separator:a66a2d7eec0262b12db16cd6c781ccf9a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a65d87b425e1f8ca19df97c15049f8733" id="r_a65d87b425e1f8ca19df97c15049f8733"><td class="memTemplParams" colspan="2">template<typename IdxT = size_t> </td></tr>
|
||||
<tr class="memitem:a65d87b425e1f8ca19df97c15049f8733"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC vec< IdxT, 3 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a65d87b425e1f8ca19df97c15049f8733">elem_to_loc_3_nd</a> (uint3 elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const size_t *c_strides, int ndim)</td></tr>
|
||||
<tr class="separator:a65d87b425e1f8ca19df97c15049f8733"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8e5a4b0fb5d018d7b078d147efe4f1e3" id="r_a8e5a4b0fb5d018d7b078d147efe4f1e3"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
|
||||
<tr class="memitem:a497dd9f1a00c8a4303d8782158a0812a" id="r_a497dd9f1a00c8a4303d8782158a0812a"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:a497dd9f1a00c8a4303d8782158a0812a"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a497dd9f1a00c8a4303d8782158a0812a">elem_to_loc</a> (IdxT elem, constant const int *shape, constant const int64_t *strides, int ndim)</td></tr>
|
||||
<tr class="separator:a497dd9f1a00c8a4303d8782158a0812a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa610d2e68eb75d7f2da5db386c1ffc9e" id="r_aa610d2e68eb75d7f2da5db386c1ffc9e"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:aa610d2e68eb75d7f2da5db386c1ffc9e"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aa610d2e68eb75d7f2da5db386c1ffc9e">elem_to_loc</a> (uint3 elem, constant const int *shape, constant const int64_t *strides, int ndim)</td></tr>
|
||||
<tr class="separator:aa610d2e68eb75d7f2da5db386c1ffc9e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6787efcdf7a898d5bafb48f2a2f1e555" id="r_a6787efcdf7a898d5bafb48f2a2f1e555"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:a6787efcdf7a898d5bafb48f2a2f1e555"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a6787efcdf7a898d5bafb48f2a2f1e555">elem_to_loc_1</a> (uint elem, constant const int64_t &stride)</td></tr>
|
||||
<tr class="separator:a6787efcdf7a898d5bafb48f2a2f1e555"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aac0e227f82198021246aa91d8c427b3e" id="r_aac0e227f82198021246aa91d8c427b3e"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:aac0e227f82198021246aa91d8c427b3e"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aac0e227f82198021246aa91d8c427b3e">elem_to_loc_2</a> (uint2 elem, constant const int64_t strides[2])</td></tr>
|
||||
<tr class="separator:aac0e227f82198021246aa91d8c427b3e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8f4258ba306870b0280079f1c5eb23e" id="r_ac8f4258ba306870b0280079f1c5eb23e"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:ac8f4258ba306870b0280079f1c5eb23e"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC IdxT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ac8f4258ba306870b0280079f1c5eb23e">elem_to_loc_3</a> (uint3 elem, constant const int64_t strides[3])</td></tr>
|
||||
<tr class="separator:ac8f4258ba306870b0280079f1c5eb23e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a97ea664406a270b34ff5a23815716730" id="r_a97ea664406a270b34ff5a23815716730"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:a97ea664406a270b34ff5a23815716730"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC vec< IdxT, 2 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a97ea664406a270b34ff5a23815716730">elem_to_loc_2_nd</a> (uint3 elem, constant const int *shape, constant const int64_t *a_strides, constant const int64_t *b_strides, int ndim)</td></tr>
|
||||
<tr class="separator:a97ea664406a270b34ff5a23815716730"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a62b078234dfd1d101ce635430b050916" id="r_a62b078234dfd1d101ce635430b050916"><td class="memTemplParams" colspan="2">template<typename IdxT = int64_t> </td></tr>
|
||||
<tr class="memitem:a62b078234dfd1d101ce635430b050916"><td class="memTemplItemLeft" align="right" valign="top">METAL_FUNC vec< IdxT, 3 > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a62b078234dfd1d101ce635430b050916">elem_to_loc_3_nd</a> (uint3 elem, constant const int *shape, constant const int64_t *a_strides, constant const int64_t *b_strides, constant const int64_t *c_strides, int ndim)</td></tr>
|
||||
<tr class="separator:a62b078234dfd1d101ce635430b050916"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8e5a4b0fb5d018d7b078d147efe4f1e3" id="r_a8e5a4b0fb5d018d7b078d147efe4f1e3"><td class="memTemplParams" colspan="2">template<typename T, typename U> </td></tr>
|
||||
<tr class="memitem:a8e5a4b0fb5d018d7b078d147efe4f1e3"><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a8e5a4b0fb5d018d7b078d147efe4f1e3">ceildiv</a> (T N, U M)</td></tr>
|
||||
<tr class="memdesc:a8e5a4b0fb5d018d7b078d147efe4f1e3"><td class="mdescLeft"> </td><td class="mdescRight">Compute ceil((float)N/(float)M) <br /></td></tr>
|
||||
<tr class="separator:a8e5a4b0fb5d018d7b078d147efe4f1e3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
@@ -243,18 +254,16 @@ Functions</h2></td></tr>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> <> \</div>
|
||||
<div class="line"> <span class="keyword">struct </span><a class="code hl_struct" href="struct_limits.html">Limits</a><type> { \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">max</a> = metal::numeric_limits<type>::max(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">min</a> = metal::numeric_limits<type>::min(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5">finite_max</a> = \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_function" href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">max</a> = metal::numeric_limits<type>::max(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">min</a> = metal::numeric_limits<type>::min(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type finite_max = \</div>
|
||||
<div class="line"> metal::numeric_limits<type>::max(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#ae7469d21f2688797ca3e388d919ef05e">finite_min</a> = \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type finite_min = \</div>
|
||||
<div class="line"> metal::numeric_limits<type>::min(); \</div>
|
||||
<div class="line"> };</div>
|
||||
<div class="ttc" id="anamespacemetal_html_a6653b28c9473087141eddce39878d4d3"><div class="ttname"><a href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">metal::min</a></div><div class="ttdeci">METAL_FUNC bfloat16_t min(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
|
||||
<div class="ttc" id="anamespacemetal_html_a853c80479ab2264d9c4587c7bcac767b"><div class="ttname"><a href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">metal::max</a></div><div class="ttdeci">METAL_FUNC bfloat16_t max(bfloat16_t x, bfloat16_t y)</div><div class="ttdef"><b>Definition</b> bf16_math.h:232</div></div>
|
||||
<div class="ttc" id="astruct_limits_html"><div class="ttname"><a href="struct_limits.html">Limits</a></div><div class="ttdef"><b>Definition</b> utils.h:23</div></div>
|
||||
<div class="ttc" id="astruct_limits_html_a2f0673b6f9da89ce1d64f9f3d74f50a8"><div class="ttname"><a href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">Limits::max</a></div><div class="ttdeci">static const constant U max</div><div class="ttdef"><b>Definition</b> utils.h:24</div></div>
|
||||
<div class="ttc" id="astruct_limits_html_a5a3eae6d244fbea2aa7b9200001463e5"><div class="ttname"><a href="struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5">Limits::finite_max</a></div><div class="ttdeci">static const constant U finite_max</div><div class="ttdef"><b>Definition</b> utils.h:26</div></div>
|
||||
<div class="ttc" id="astruct_limits_html_a6e81584ba65a4dc6ff9366b458e3a20e"><div class="ttname"><a href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">Limits::min</a></div><div class="ttdeci">static const constant U min</div><div class="ttdef"><b>Definition</b> utils.h:25</div></div>
|
||||
<div class="ttc" id="astruct_limits_html_ae7469d21f2688797ca3e388d919ef05e"><div class="ttname"><a href="struct_limits.html#ae7469d21f2688797ca3e388d919ef05e">Limits::finite_min</a></div><div class="ttdeci">static const constant U finite_min</div><div class="ttdef"><b>Definition</b> utils.h:27</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
@@ -274,13 +283,13 @@ Functions</h2></td></tr>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">template</span> <> \</div>
|
||||
<div class="line"> <span class="keyword">struct </span><a class="code hl_struct" href="struct_limits.html">Limits</a><type> { \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#a2f0673b6f9da89ce1d64f9f3d74f50a8">max</a> = \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_function" href="namespacemetal.html#a853c80479ab2264d9c4587c7bcac767b">max</a> = \</div>
|
||||
<div class="line"> metal::numeric_limits<type>::infinity(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#a6e81584ba65a4dc6ff9366b458e3a20e">min</a> = \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_function" href="namespacemetal.html#a6653b28c9473087141eddce39878d4d3">min</a> = \</div>
|
||||
<div class="line"> -metal::numeric_limits<type>::infinity(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5">finite_max</a> = \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type finite_max = \</div>
|
||||
<div class="line"> metal::numeric_limits<type>::max(); \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type <a class="code hl_variable" href="struct_limits.html#ae7469d21f2688797ca3e388d919ef05e">finite_min</a> = \</div>
|
||||
<div class="line"> <span class="keyword">static</span> <span class="keyword">constexpr</span> constant type finite_min = \</div>
|
||||
<div class="line"> -metal::numeric_limits<type>::max(); \</div>
|
||||
<div class="line"> };</div>
|
||||
</div><!-- fragment -->
|
||||
@@ -322,7 +331,7 @@ Functions</h2></td></tr>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename T , typename U > </div>
|
||||
template<typename T, typename U> </div>
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
@@ -340,7 +349,7 @@ template<typename T , typename U > </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -349,18 +358,18 @@ template<typename T , typename U > </div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a4b53fb0679f67f9063deba94753d4185" name="a4b53fb0679f67f9063deba94753d4185"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4b53fb0679f67f9063deba94753d4185">◆ </a></span>elem_to_loc() <span class="overload">[1/3]</span></h2>
|
||||
<a id="a497dd9f1a00c8a4303d8782158a0812a" name="a497dd9f1a00c8a4303d8782158a0812a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a497dd9f1a00c8a4303d8782158a0812a">◆ </a></span>elem_to_loc() <span class="overload">[1/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC IdxT elem_to_loc </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">StrideT</td> <td class="paramname"><span class="paramname"><em>elem</em></span>, </td>
|
||||
<td class="paramtype">IdxT</td> <td class="paramname"><span class="paramname"><em>elem</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -370,7 +379,7 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT *</td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -382,46 +391,13 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a22eaa505dbc7dd2a63a895f2e16712f5" name="a22eaa505dbc7dd2a63a895f2e16712f5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a22eaa505dbc7dd2a63a895f2e16712f5">◆ </a></span>elem_to_loc() <span class="overload">[2/3]</span></h2>
|
||||
<a id="aa610d2e68eb75d7f2da5db386c1ffc9e" name="aa610d2e68eb75d7f2da5db386c1ffc9e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa610d2e68eb75d7f2da5db386c1ffc9e">◆ </a></span>elem_to_loc() <span class="overload">[2/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC IdxT elem_to_loc </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">uint</td> <td class="paramname"><span class="paramname"><em>elem</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const int *</td> <td class="paramname"><span class="paramname"><em>shape</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT *</td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ndim</em></span> )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="aec82f4bf0e22b8d1b89ad654ad8d8753" name="aec82f4bf0e22b8d1b89ad654ad8d8753"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aec82f4bf0e22b8d1b89ad654ad8d8753">◆ </a></span>elem_to_loc() <span class="overload">[3/3]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC IdxT elem_to_loc </td>
|
||||
@@ -436,7 +412,7 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT *</td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -448,13 +424,13 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ac612d0ae30b8257198339debe04916a3" name="ac612d0ae30b8257198339debe04916a3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac612d0ae30b8257198339debe04916a3">◆ </a></span>elem_to_loc_1()</h2>
|
||||
<a id="a6787efcdf7a898d5bafb48f2a2f1e555" name="a6787efcdf7a898d5bafb48f2a2f1e555"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6787efcdf7a898d5bafb48f2a2f1e555">◆ </a></span>elem_to_loc_1()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC IdxT elem_to_loc_1 </td>
|
||||
@@ -464,20 +440,20 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT &</td> <td class="paramname"><span class="paramname"><em>stride</em></span> )</td>
|
||||
<td class="paramtype">constant const int64_t &</td> <td class="paramname"><span class="paramname"><em>stride</em></span> )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a43f33efc000962d6de881a3aab7458de" name="a43f33efc000962d6de881a3aab7458de"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a43f33efc000962d6de881a3aab7458de">◆ </a></span>elem_to_loc_2()</h2>
|
||||
<a id="aac0e227f82198021246aa91d8c427b3e" name="aac0e227f82198021246aa91d8c427b3e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aac0e227f82198021246aa91d8c427b3e">◆ </a></span>elem_to_loc_2()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC IdxT elem_to_loc_2 </td>
|
||||
@@ -487,20 +463,20 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT</td> <td class="paramname"><span class="paramname"><em>strides</em></span>[2] )</td>
|
||||
<td class="paramtype">constant const int64_t</td> <td class="paramname"><span class="paramname"><em>strides</em></span>[2] )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a66a2d7eec0262b12db16cd6c781ccf9a" name="a66a2d7eec0262b12db16cd6c781ccf9a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a66a2d7eec0262b12db16cd6c781ccf9a">◆ </a></span>elem_to_loc_2_nd()</h2>
|
||||
<a id="a97ea664406a270b34ff5a23815716730" name="a97ea664406a270b34ff5a23815716730"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a97ea664406a270b34ff5a23815716730">◆ </a></span>elem_to_loc_2_nd()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC vec< IdxT, 2 > elem_to_loc_2_nd </td>
|
||||
@@ -515,12 +491,12 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -532,13 +508,13 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a650f8ea8cf9f9519da9e301aad0308dc" name="a650f8ea8cf9f9519da9e301aad0308dc"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a650f8ea8cf9f9519da9e301aad0308dc">◆ </a></span>elem_to_loc_3()</h2>
|
||||
<a id="ac8f4258ba306870b0280079f1c5eb23e" name="ac8f4258ba306870b0280079f1c5eb23e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac8f4258ba306870b0280079f1c5eb23e">◆ </a></span>elem_to_loc_3()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC IdxT elem_to_loc_3 </td>
|
||||
@@ -548,20 +524,20 @@ template<typename StrideT , typename IdxT = StrideT> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const StrideT</td> <td class="paramname"><span class="paramname"><em>strides</em></span>[3] )</td>
|
||||
<td class="paramtype">constant const int64_t</td> <td class="paramname"><span class="paramname"><em>strides</em></span>[3] )</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a65d87b425e1f8ca19df97c15049f8733" name="a65d87b425e1f8ca19df97c15049f8733"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a65d87b425e1f8ca19df97c15049f8733">◆ </a></span>elem_to_loc_3_nd()</h2>
|
||||
<a id="a62b078234dfd1d101ce635430b050916" name="a62b078234dfd1d101ce635430b050916"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a62b078234dfd1d101ce635430b050916">◆ </a></span>elem_to_loc_3_nd()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<typename IdxT = size_t> </div>
|
||||
template<typename IdxT = int64_t> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">METAL_FUNC vec< IdxT, 3 > elem_to_loc_3_nd </td>
|
||||
@@ -576,17 +552,17 @@ template<typename IdxT = size_t> </div>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>a_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>b_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">constant const size_t *</td> <td class="paramname"><span class="paramname"><em>c_strides</em></span>, </td>
|
||||
<td class="paramtype">constant const int64_t *</td> <td class="paramname"><span class="paramname"><em>c_strides</em></span>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
@@ -616,7 +592,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -641,7 +617,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -670,7 +646,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -699,7 +675,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -728,7 +704,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -757,7 +733,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -791,7 +767,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -825,7 +801,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -859,7 +835,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -893,7 +869,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -922,7 +898,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -951,7 +927,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -980,7 +956,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1009,7 +985,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1038,7 +1014,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1067,7 +1043,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1096,7 +1072,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1125,7 +1101,7 @@ template<typename IdxT = size_t> </div>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||||
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
@@ -1133,10 +1109,13 @@ template<typename IdxT = size_t> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="dir_70a37effa88bcbd6b791977fa1e64356.html">kernels</a></li><li class="navelem"><a class="el" href="backend_2metal_2kernels_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
var backend_2metal_2kernels_2utils_8h =
|
||||
[
|
||||
[ "Limits< U >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint8_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint16_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint32_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< uint64_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int8_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int16_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int32_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< int64_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< half >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< float >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< bfloat16_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< bool >", "struct_limits.html", "struct_limits" ],
|
||||
[ "Limits< complex64_t >", "struct_limits.html", "struct_limits" ],
|
||||
[ "LoopedElemToLoc< DIM, OffsetT, General >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
|
||||
[ "LoopedElemToLoc< 1, OffsetT, true >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
|
||||
[ "LoopedElemToLoc< 1, OffsetT, false >", "struct_looped_elem_to_loc.html", "struct_looped_elem_to_loc" ],
|
||||
[ "ConditionalType< condition, T, U >", "struct_conditional_type.html", "struct_conditional_type" ],
|
||||
[ "ConditionalType< true, T, U >", "struct_conditional_type.html", "struct_conditional_type" ],
|
||||
[ "instantiate_default_limit", "backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c", null ],
|
||||
[ "instantiate_float_limit", "backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a", null ],
|
||||
[ "MLX_MTL_PRAGMA_UNROLL", "backend_2metal_2kernels_2utils_8h.html#a069b682d7d21827461544817d722bfd3", null ],
|
||||
[ "float16_t", "backend_2metal_2kernels_2utils_8h.html#acb8ddf4a29129846b673c50ba7078773", null ],
|
||||
[ "ceildiv", "backend_2metal_2kernels_2utils_8h.html#a8e5a4b0fb5d018d7b078d147efe4f1e3", null ],
|
||||
[ "elem_to_loc", "backend_2metal_2kernels_2utils_8h.html#a497dd9f1a00c8a4303d8782158a0812a", null ],
|
||||
[ "elem_to_loc", "backend_2metal_2kernels_2utils_8h.html#aa610d2e68eb75d7f2da5db386c1ffc9e", null ],
|
||||
[ "elem_to_loc_1", "backend_2metal_2kernels_2utils_8h.html#a6787efcdf7a898d5bafb48f2a2f1e555", null ],
|
||||
[ "elem_to_loc_2", "backend_2metal_2kernels_2utils_8h.html#aac0e227f82198021246aa91d8c427b3e", null ],
|
||||
[ "elem_to_loc_2_nd", "backend_2metal_2kernels_2utils_8h.html#a97ea664406a270b34ff5a23815716730", null ],
|
||||
[ "elem_to_loc_3", "backend_2metal_2kernels_2utils_8h.html#ac8f4258ba306870b0280079f1c5eb23e", null ],
|
||||
[ "elem_to_loc_3_nd", "backend_2metal_2kernels_2utils_8h.html#a62b078234dfd1d101ce635430b050916", null ],
|
||||
[ "log1p", "backend_2metal_2kernels_2utils_8h.html#a3501b665c8837eabf9789ea27a7d6946", null ],
|
||||
[ "log1p", "backend_2metal_2kernels_2utils_8h.html#a27c03f2f90ab56db2e4d59559a3d2e9a", null ],
|
||||
[ "simd_shuffle", "backend_2metal_2kernels_2utils_8h.html#ab4cbcdb054f9165130da91a3334da0cf", null ],
|
||||
[ "simd_shuffle", "backend_2metal_2kernels_2utils_8h.html#ab8175b66bcc080fb89f738143568c30b", null ],
|
||||
[ "simd_shuffle", "backend_2metal_2kernels_2utils_8h.html#a3bdbdfeb7a1dde40cd3ce1df8d9213b5", null ],
|
||||
[ "simd_shuffle", "backend_2metal_2kernels_2utils_8h.html#a71986ecdd7d18f975dd22c3df7421ce2", null ],
|
||||
[ "simd_shuffle_and_fill_up", "backend_2metal_2kernels_2utils_8h.html#ad55bd473647f2c6c68e65e5312c132d1", null ],
|
||||
[ "simd_shuffle_and_fill_up", "backend_2metal_2kernels_2utils_8h.html#a94e02a6ae8c39cbf4cb23aa44df9dbd5", null ],
|
||||
[ "simd_shuffle_and_fill_up", "backend_2metal_2kernels_2utils_8h.html#a7bb56415c5412a6a26f70a990915f064", null ],
|
||||
[ "simd_shuffle_and_fill_up", "backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4", null ],
|
||||
[ "simd_shuffle_down", "backend_2metal_2kernels_2utils_8h.html#a48ae83a8caf5c74810df60b6c6cdb062", null ],
|
||||
[ "simd_shuffle_down", "backend_2metal_2kernels_2utils_8h.html#ad9a671a5f9aaa729ae7a77026f16bcb0", null ],
|
||||
[ "simd_shuffle_down", "backend_2metal_2kernels_2utils_8h.html#a0c1e4d782fcc56e1ab5565cef12430dd", null ],
|
||||
[ "simd_shuffle_down", "backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c", null ],
|
||||
[ "simd_shuffle_up", "backend_2metal_2kernels_2utils_8h.html#ae0f5c42020275a588234e69f1eb7a485", null ],
|
||||
[ "simd_shuffle_up", "backend_2metal_2kernels_2utils_8h.html#a92b455bac6a23af51c35ea83de2383eb", null ],
|
||||
[ "simd_shuffle_up", "backend_2metal_2kernels_2utils_8h.html#a617f3857caf33c569afa6148135f8b7a", null ],
|
||||
[ "simd_shuffle_up", "backend_2metal_2kernels_2utils_8h.html#a39e436e0a942912266aae7e0bd82d7c0", null ]
|
||||
];
|
||||
+437
-429
File diff suppressed because it is too large
Load Diff
+47
-30
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.1"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>MLX: mlx/backend/metal/utils.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
@@ -11,11 +11,18 @@
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<script type="text/javascript" src="clipboard.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="cookie.js"></script>
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() { init_search(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,12 +35,24 @@
|
||||
<div id="projectname">MLX
|
||||
</div>
|
||||
</td>
|
||||
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
||||
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.1 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
@@ -44,22 +63,23 @@ var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||||
$(function() { codefold.init(0); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('',true,false,'search.php','Search',false);
|
||||
$(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function(){ initResizable(false); });
|
||||
$(function(){initNavTree('backend_2metal_2utils_8h.html',''); initResizable(true); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
@@ -81,12 +101,6 @@ $(function(){ initResizable(false); });
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#namespaces">Namespaces</a> |
|
||||
@@ -115,10 +129,10 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:af1fdfdaa5644394362e6baba30701bae"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0f0f59d3ffe2d16a684e5fc093302e15" id="r_a0f0f59d3ffe2d16a684e5fc093302e15"><td class="memItemLeft" align="right" valign="top">MTL::Size </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a0f0f59d3ffe2d16a684e5fc093302e15">mlx::core::get_block_dims</a> (int dim0, int dim1, int dim2, int pow2=10)</td></tr>
|
||||
<tr class="separator:a0f0f59d3ffe2d16a684e5fc093302e15"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8dc169474a51a1f4f761d5752819bd7c" id="r_a8dc169474a51a1f4f761d5752819bd7c"><td class="memItemLeft" align="right" valign="top">MTL::Size </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c">mlx::core::get_2d_grid_dims</a> (const std::vector< int > &shape, const std::vector< size_t > &strides)</td></tr>
|
||||
<tr class="separator:a8dc169474a51a1f4f761d5752819bd7c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a187b9a932c7b3d67ee42d9d12fcb1bb1" id="r_a187b9a932c7b3d67ee42d9d12fcb1bb1"><td class="memItemLeft" align="right" valign="top">MTL::Size </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a187b9a932c7b3d67ee42d9d12fcb1bb1">mlx::core::get_2d_grid_dims</a> (const std::vector< int > &shape, const std::vector< size_t > &strides, size_t divisor)</td></tr>
|
||||
<tr class="separator:a187b9a932c7b3d67ee42d9d12fcb1bb1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa9692de582995fd3ce19493b45ab7144" id="r_aa9692de582995fd3ce19493b45ab7144"><td class="memItemLeft" align="right" valign="top">MTL::Size </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aa9692de582995fd3ce19493b45ab7144">mlx::core::get_2d_grid_dims</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &strides)</td></tr>
|
||||
<tr class="separator:aa9692de582995fd3ce19493b45ab7144"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6ec5cdf3253a9f20ca5ea7a1590fb386" id="r_a6ec5cdf3253a9f20ca5ea7a1590fb386"><td class="memItemLeft" align="right" valign="top">MTL::Size </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a6ec5cdf3253a9f20ca5ea7a1590fb386">mlx::core::get_2d_grid_dims</a> (const <a class="el" href="namespacemlx_1_1core.html#a694e23f2d59606643728ad443d621416">Shape</a> &shape, const <a class="el" href="namespacemlx_1_1core.html#a79939016d0972ded7db37130da2a8b5c">Strides</a> &strides, size_t divisor)</td></tr>
|
||||
<tr class="separator:a6ec5cdf3253a9f20ca5ea7a1590fb386"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aed148d95e7b5221f1312473deded0d27" id="r_aed148d95e7b5221f1312473deded0d27"><td class="memItemLeft" align="right" valign="top">NS::String * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aed148d95e7b5221f1312473deded0d27">mlx::core::make_string</a> (std::ostringstream &os)</td></tr>
|
||||
<tr class="separator:aed148d95e7b5221f1312473deded0d27"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a79817d2432e782e596c9c49a08b93be2" id="r_a79817d2432e782e596c9c49a08b93be2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a79817d2432e782e596c9c49a08b93be2">mlx::core::debug_set_stream_queue_label</a> (MTL::CommandQueue *queue, int index)</td></tr>
|
||||
@@ -127,18 +141,21 @@ Functions</h2></td></tr>
|
||||
<tr class="separator:a489e45b3a5cd8b46e8ea56b9132eb230"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad4be35b310a252edd80d9cf04f094a60" id="r_ad4be35b310a252edd80d9cf04f094a60"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#ad4be35b310a252edd80d9cf04f094a60">mlx::core::get_primitive_string</a> (<a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> *primitive)</td></tr>
|
||||
<tr class="separator:ad4be35b310a252edd80d9cf04f094a60"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a76a2e310857f60f5ea6f1388d45b964d" id="r_a76a2e310857f60f5ea6f1388d45b964d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
||||
<tr class="memitem:a76a2e310857f60f5ea6f1388d45b964d" id="r_a76a2e310857f60f5ea6f1388d45b964d"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
||||
<tr class="memitem:a76a2e310857f60f5ea6f1388d45b964d"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#a76a2e310857f60f5ea6f1388d45b964d">mlx::core::concatenate</a> (std::string &acc, T first)</td></tr>
|
||||
<tr class="separator:a76a2e310857f60f5ea6f1388d45b964d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaf51544472fa87fa974686eacdd2a4a6" id="r_aaf51544472fa87fa974686eacdd2a4a6"><td class="memTemplParams" colspan="2">template<typename T , typename... Args> </td></tr>
|
||||
<tr class="memitem:aaf51544472fa87fa974686eacdd2a4a6" id="r_aaf51544472fa87fa974686eacdd2a4a6"><td class="memTemplParams" colspan="2">template<typename T, typename... Args> </td></tr>
|
||||
<tr class="memitem:aaf51544472fa87fa974686eacdd2a4a6"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemlx_1_1core.html#aaf51544472fa87fa974686eacdd2a4a6">mlx::core::concatenate</a> (std::string &acc, T first, Args... args)</td></tr>
|
||||
<tr class="separator:aaf51544472fa87fa974686eacdd2a4a6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_938ab0ecf10b8b860ff766c820f665fd.html">mlx</a></li><li class="navelem"><a class="el" href="dir_1d446c9bd3c99228254c9484e0bc5c06.html">backend</a></li><li class="navelem"><a class="el" href="dir_d0c977ea65824390717cdb7efc36c157.html">metal</a></li><li class="navelem"><a class="el" href="backend_2metal_2utils_8h.html">utils.h</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user