From c3756327b1dffe8f17acb7a726f6fa991b276bef Mon Sep 17 00:00:00 2001 From: CircleCI Docs Date: Thu, 31 Oct 2024 03:00:19 +0000 Subject: [PATCH] rebase --- docs/build/html/.buildinfo | 2 +- .../html/_static/documentation_options.js | 2 +- docs/build/html/annotated.html | 68 +- .../backend_2metal_2device_8h_source.html | 196 +-- docs/build/html/classes.html | 8 +- ...x_1_1core_1_1metal_1_1_device-members.html | 29 +- .../classmlx_1_1core_1_1metal_1_1_device.html | 27 + docs/build/html/cpp/ops.html | 11 +- docs/build/html/dev/custom_metal_kernels.html | 11 +- docs/build/html/dev/extensions.html | 11 +- docs/build/html/dev/metal_debugger.html | 11 +- .../dir_1b634d20b746ceaa770a5379eca5f24a.html | 109 ++ .../dir_76215a6c54e2b67053e723fc2395583c.html | 2 + docs/build/html/doxygen_crawl.html | 173 ++- .../html/examples/linear_regression.html | 11 +- docs/build/html/examples/llama-inference.html | 11 +- docs/build/html/examples/mlp.html | 11 +- docs/build/html/files.html | 7 +- docs/build/html/functions_a.html | 4 +- docs/build/html/functions_b.html | 4 +- docs/build/html/functions_c.html | 2 + docs/build/html/functions_e.html | 2 + docs/build/html/functions_f.html | 2 + docs/build/html/functions_func_c.html | 1 + docs/build/html/functions_func_e.html | 1 + docs/build/html/functions_func_f.html | 1 + docs/build/html/functions_func_g.html | 2 + docs/build/html/functions_func_l.html | 4 +- docs/build/html/functions_func_m.html | 4 +- docs/build/html/functions_func_o.html | 1 + docs/build/html/functions_func_s.html | 6 +- docs/build/html/functions_g.html | 2 + docs/build/html/functions_j.html | 2 - docs/build/html/functions_k.html | 12 + docs/build/html/functions_l.html | 4 +- docs/build/html/functions_m.html | 7 +- docs/build/html/functions_o.html | 1 + docs/build/html/functions_r.html | 3 +- docs/build/html/functions_s.html | 8 +- docs/build/html/functions_t.html | 4 +- docs/build/html/functions_type.html | 53 +- docs/build/html/functions_v.html | 5 +- docs/build/html/functions_vars.html | 4 +- docs/build/html/functions_vars_b.html | 4 +- docs/build/html/functions_vars_c.html | 1 + docs/build/html/functions_vars_j.html | 2 - docs/build/html/functions_vars_k.html | 12 + docs/build/html/functions_vars_r.html | 3 +- docs/build/html/functions_vars_s.html | 2 - docs/build/html/functions_vars_t.html | 2 - docs/build/html/functions_vars_v.html | 2 + docs/build/html/gather_8h_source.html | 46 +- docs/build/html/gemm_8h_source.html | 2 +- docs/build/html/genindex.html | 11 +- docs/build/html/globals_defs.html | 1 + docs/build/html/globals_func_s.html | 3 +- docs/build/html/globals_i.html | 1 + docs/build/html/globals_s.html | 3 +- docs/build/html/hierarchy.html | 728 ++++++----- docs/build/html/index.html | 11 +- docs/build/html/install.html | 11 +- docs/build/html/integral__constant_8h.html | 226 ++++ .../html/integral__constant_8h_source.html | 212 +++ docs/build/html/jit_2indexing_8h_source.html | 141 +- .../html/kernels_2indexing_8h_source.html | 30 +- ...2conv_2kernels_2steel__conv_8h_source.html | 2 +- docs/build/html/menudata.js | 13 +- docs/build/html/mma_8h.html | 16 +- docs/build/html/mma_8h_source.html | 1144 +++++++++++------ docs/build/html/namespacemembers_b.html | 1 + docs/build/html/namespacemembers_f.html | 1 + docs/build/html/namespacemembers_func_o.html | 24 +- docs/build/html/namespacemembers_func_s.html | 2 +- docs/build/html/namespacemembers_func_t.html | 1 + docs/build/html/namespacemembers_i.html | 2 + docs/build/html/namespacemembers_o.html | 24 +- docs/build/html/namespacemembers_p.html | 1 + docs/build/html/namespacemembers_s.html | 2 +- docs/build/html/namespacemembers_t.html | 2 + docs/build/html/namespacemembers_type.html | 6 + docs/build/html/namespacemembers_v.html | 1 + docs/build/html/namespacemembers_vars.html | 1 + docs/build/html/namespacemetal.html | 59 + docs/build/html/namespacemlx_1_1steel.html | 634 ++++++++- docs/build/html/objects.inv | Bin 26630 -> 26630 bytes .../python/_autosummary/mlx.core.Device.html | 11 +- .../python/_autosummary/mlx.core.Dtype.html | 11 +- .../_autosummary/mlx.core.DtypeCategory.html | 11 +- .../python/_autosummary/mlx.core.abs.html | 11 +- .../python/_autosummary/mlx.core.add.html | 11 +- .../python/_autosummary/mlx.core.addmm.html | 11 +- .../python/_autosummary/mlx.core.all.html | 11 +- .../_autosummary/mlx.core.allclose.html | 11 +- .../python/_autosummary/mlx.core.any.html | 11 +- .../python/_autosummary/mlx.core.arange.html | 11 +- .../python/_autosummary/mlx.core.arccos.html | 11 +- .../python/_autosummary/mlx.core.arccosh.html | 11 +- .../python/_autosummary/mlx.core.arcsin.html | 11 +- .../python/_autosummary/mlx.core.arcsinh.html | 11 +- .../python/_autosummary/mlx.core.arctan.html | 11 +- .../python/_autosummary/mlx.core.arctan2.html | 11 +- .../python/_autosummary/mlx.core.arctanh.html | 11 +- .../python/_autosummary/mlx.core.argmax.html | 11 +- .../python/_autosummary/mlx.core.argmin.html | 11 +- .../_autosummary/mlx.core.argpartition.html | 11 +- .../python/_autosummary/mlx.core.argsort.html | 11 +- .../python/_autosummary/mlx.core.array.T.html | 11 +- .../_autosummary/mlx.core.array.abs.html | 11 +- .../_autosummary/mlx.core.array.all.html | 11 +- .../_autosummary/mlx.core.array.any.html | 11 +- .../_autosummary/mlx.core.array.argmax.html | 11 +- .../_autosummary/mlx.core.array.argmin.html | 11 +- .../_autosummary/mlx.core.array.astype.html | 11 +- .../_autosummary/mlx.core.array.at.html | 11 +- .../_autosummary/mlx.core.array.conj.html | 11 +- .../_autosummary/mlx.core.array.cos.html | 11 +- .../_autosummary/mlx.core.array.cummax.html | 11 +- .../_autosummary/mlx.core.array.cummin.html | 11 +- .../_autosummary/mlx.core.array.cumprod.html | 11 +- .../_autosummary/mlx.core.array.cumsum.html | 11 +- .../_autosummary/mlx.core.array.diag.html | 11 +- .../_autosummary/mlx.core.array.diagonal.html | 11 +- .../_autosummary/mlx.core.array.dtype.html | 11 +- .../_autosummary/mlx.core.array.exp.html | 11 +- .../_autosummary/mlx.core.array.flatten.html | 11 +- .../python/_autosummary/mlx.core.array.html | 11 +- .../_autosummary/mlx.core.array.item.html | 11 +- .../_autosummary/mlx.core.array.itemsize.html | 11 +- .../_autosummary/mlx.core.array.log.html | 11 +- .../_autosummary/mlx.core.array.log10.html | 11 +- .../_autosummary/mlx.core.array.log1p.html | 11 +- .../_autosummary/mlx.core.array.log2.html | 11 +- .../mlx.core.array.logsumexp.html | 11 +- .../_autosummary/mlx.core.array.max.html | 11 +- .../_autosummary/mlx.core.array.mean.html | 11 +- .../_autosummary/mlx.core.array.min.html | 11 +- .../_autosummary/mlx.core.array.moveaxis.html | 11 +- .../_autosummary/mlx.core.array.nbytes.html | 11 +- .../_autosummary/mlx.core.array.ndim.html | 11 +- .../_autosummary/mlx.core.array.prod.html | 11 +- .../mlx.core.array.reciprocal.html | 11 +- .../_autosummary/mlx.core.array.reshape.html | 11 +- .../_autosummary/mlx.core.array.round.html | 11 +- .../_autosummary/mlx.core.array.rsqrt.html | 11 +- .../_autosummary/mlx.core.array.shape.html | 11 +- .../_autosummary/mlx.core.array.sin.html | 11 +- .../_autosummary/mlx.core.array.size.html | 11 +- .../_autosummary/mlx.core.array.split.html | 11 +- .../_autosummary/mlx.core.array.sqrt.html | 11 +- .../_autosummary/mlx.core.array.square.html | 11 +- .../_autosummary/mlx.core.array.squeeze.html | 11 +- .../_autosummary/mlx.core.array.std.html | 11 +- .../_autosummary/mlx.core.array.sum.html | 11 +- .../_autosummary/mlx.core.array.swapaxes.html | 11 +- .../_autosummary/mlx.core.array.tolist.html | 11 +- .../mlx.core.array.transpose.html | 11 +- .../_autosummary/mlx.core.array.var.html | 11 +- .../_autosummary/mlx.core.array.view.html | 11 +- .../_autosummary/mlx.core.array_equal.html | 11 +- .../_autosummary/mlx.core.as_strided.html | 11 +- .../_autosummary/mlx.core.atleast_1d.html | 11 +- .../_autosummary/mlx.core.atleast_2d.html | 11 +- .../_autosummary/mlx.core.atleast_3d.html | 11 +- .../_autosummary/mlx.core.bitwise_and.html | 11 +- .../_autosummary/mlx.core.bitwise_or.html | 11 +- .../_autosummary/mlx.core.bitwise_xor.html | 11 +- .../mlx.core.block_masked_mm.html | 11 +- .../_autosummary/mlx.core.broadcast_to.html | 11 +- .../python/_autosummary/mlx.core.ceil.html | 11 +- .../python/_autosummary/mlx.core.clip.html | 11 +- .../python/_autosummary/mlx.core.compile.html | 11 +- .../_autosummary/mlx.core.concatenate.html | 11 +- .../python/_autosummary/mlx.core.conj.html | 11 +- .../_autosummary/mlx.core.conjugate.html | 11 +- .../python/_autosummary/mlx.core.conv1d.html | 11 +- .../python/_autosummary/mlx.core.conv2d.html | 11 +- .../python/_autosummary/mlx.core.conv3d.html | 11 +- .../_autosummary/mlx.core.conv_general.html | 11 +- .../mlx.core.conv_transpose1d.html | 11 +- .../mlx.core.conv_transpose2d.html | 11 +- .../mlx.core.conv_transpose3d.html | 11 +- .../_autosummary/mlx.core.convolve.html | 11 +- .../python/_autosummary/mlx.core.cos.html | 11 +- .../python/_autosummary/mlx.core.cosh.html | 11 +- .../python/_autosummary/mlx.core.cummax.html | 11 +- .../python/_autosummary/mlx.core.cummin.html | 11 +- .../python/_autosummary/mlx.core.cumprod.html | 11 +- .../python/_autosummary/mlx.core.cumsum.html | 11 +- .../mlx.core.custom_function.html | 11 +- .../_autosummary/mlx.core.default_device.html | 11 +- .../_autosummary/mlx.core.default_stream.html | 11 +- .../python/_autosummary/mlx.core.degrees.html | 11 +- .../_autosummary/mlx.core.dequantize.html | 11 +- .../python/_autosummary/mlx.core.diag.html | 11 +- .../_autosummary/mlx.core.diagonal.html | 11 +- .../mlx.core.disable_compile.html | 11 +- .../mlx.core.distributed.Group.html | 11 +- .../mlx.core.distributed.all_gather.html | 11 +- .../mlx.core.distributed.all_sum.html | 11 +- .../mlx.core.distributed.init.html | 11 +- .../mlx.core.distributed.is_available.html | 11 +- .../mlx.core.distributed.recv.html | 11 +- .../mlx.core.distributed.recv_like.html | 11 +- .../mlx.core.distributed.send.html | 11 +- .../python/_autosummary/mlx.core.divide.html | 11 +- .../python/_autosummary/mlx.core.divmod.html | 11 +- .../python/_autosummary/mlx.core.einsum.html | 11 +- .../_autosummary/mlx.core.einsum_path.html | 11 +- .../_autosummary/mlx.core.enable_compile.html | 11 +- .../python/_autosummary/mlx.core.equal.html | 11 +- .../python/_autosummary/mlx.core.erf.html | 11 +- .../python/_autosummary/mlx.core.erfinv.html | 11 +- .../python/_autosummary/mlx.core.eval.html | 11 +- .../python/_autosummary/mlx.core.exp.html | 11 +- .../_autosummary/mlx.core.expand_dims.html | 11 +- .../python/_autosummary/mlx.core.expm1.html | 11 +- .../python/_autosummary/mlx.core.eye.html | 11 +- .../mlx.core.fast.affine_quantize.html | 11 +- .../mlx.core.fast.layer_norm.html | 11 +- .../mlx.core.fast.metal_kernel.html | 11 +- .../_autosummary/mlx.core.fast.rms_norm.html | 11 +- .../_autosummary/mlx.core.fast.rope.html | 11 +- ...ore.fast.scaled_dot_product_attention.html | 11 +- .../python/_autosummary/mlx.core.fft.fft.html | 11 +- .../_autosummary/mlx.core.fft.fft2.html | 11 +- .../_autosummary/mlx.core.fft.fftn.html | 11 +- .../_autosummary/mlx.core.fft.ifft.html | 11 +- .../_autosummary/mlx.core.fft.ifft2.html | 11 +- .../_autosummary/mlx.core.fft.ifftn.html | 11 +- .../_autosummary/mlx.core.fft.irfft.html | 11 +- .../_autosummary/mlx.core.fft.irfft2.html | 11 +- .../_autosummary/mlx.core.fft.irfftn.html | 11 +- .../_autosummary/mlx.core.fft.rfft.html | 11 +- .../_autosummary/mlx.core.fft.rfft2.html | 11 +- .../_autosummary/mlx.core.fft.rfftn.html | 11 +- .../python/_autosummary/mlx.core.flatten.html | 11 +- .../python/_autosummary/mlx.core.floor.html | 11 +- .../_autosummary/mlx.core.floor_divide.html | 11 +- .../python/_autosummary/mlx.core.full.html | 11 +- .../_autosummary/mlx.core.gather_mm.html | 11 +- .../_autosummary/mlx.core.gather_qmm.html | 11 +- .../python/_autosummary/mlx.core.grad.html | 11 +- .../python/_autosummary/mlx.core.greater.html | 11 +- .../_autosummary/mlx.core.greater_equal.html | 11 +- .../mlx.core.hadamard_transform.html | 11 +- .../_autosummary/mlx.core.identity.html | 11 +- .../python/_autosummary/mlx.core.imag.html | 11 +- .../python/_autosummary/mlx.core.inner.html | 11 +- .../python/_autosummary/mlx.core.isclose.html | 11 +- .../_autosummary/mlx.core.isfinite.html | 11 +- .../python/_autosummary/mlx.core.isinf.html | 11 +- .../python/_autosummary/mlx.core.isnan.html | 11 +- .../_autosummary/mlx.core.isneginf.html | 11 +- .../_autosummary/mlx.core.isposinf.html | 11 +- .../_autosummary/mlx.core.issubdtype.html | 11 +- .../python/_autosummary/mlx.core.jvp.html | 11 +- .../_autosummary/mlx.core.left_shift.html | 11 +- .../python/_autosummary/mlx.core.less.html | 11 +- .../_autosummary/mlx.core.less_equal.html | 11 +- .../mlx.core.linalg.cholesky.html | 11 +- .../mlx.core.linalg.cholesky_inv.html | 11 +- .../_autosummary/mlx.core.linalg.cross.html | 11 +- .../_autosummary/mlx.core.linalg.eigh.html | 11 +- .../mlx.core.linalg.eigvalsh.html | 11 +- .../_autosummary/mlx.core.linalg.inv.html | 11 +- .../_autosummary/mlx.core.linalg.norm.html | 11 +- .../_autosummary/mlx.core.linalg.qr.html | 11 +- .../_autosummary/mlx.core.linalg.svd.html | 11 +- .../_autosummary/mlx.core.linalg.tri_inv.html | 11 +- .../_autosummary/mlx.core.linspace.html | 11 +- .../python/_autosummary/mlx.core.load.html | 11 +- .../python/_autosummary/mlx.core.log.html | 11 +- .../python/_autosummary/mlx.core.log10.html | 11 +- .../python/_autosummary/mlx.core.log1p.html | 11 +- .../python/_autosummary/mlx.core.log2.html | 11 +- .../_autosummary/mlx.core.logaddexp.html | 11 +- .../_autosummary/mlx.core.logical_and.html | 11 +- .../_autosummary/mlx.core.logical_not.html | 11 +- .../_autosummary/mlx.core.logical_or.html | 11 +- .../_autosummary/mlx.core.logsumexp.html | 11 +- .../python/_autosummary/mlx.core.matmul.html | 11 +- .../python/_autosummary/mlx.core.max.html | 11 +- .../python/_autosummary/mlx.core.maximum.html | 11 +- .../python/_autosummary/mlx.core.mean.html | 11 +- .../_autosummary/mlx.core.meshgrid.html | 11 +- .../mlx.core.metal.clear_cache.html | 11 +- .../mlx.core.metal.device_info.html | 11 +- .../mlx.core.metal.get_active_memory.html | 11 +- .../mlx.core.metal.get_cache_memory.html | 11 +- .../mlx.core.metal.get_peak_memory.html | 11 +- .../mlx.core.metal.is_available.html | 11 +- .../mlx.core.metal.reset_peak_memory.html | 11 +- .../mlx.core.metal.set_cache_limit.html | 11 +- .../mlx.core.metal.set_memory_limit.html | 11 +- .../mlx.core.metal.set_wired_limit.html | 11 +- .../mlx.core.metal.start_capture.html | 11 +- .../mlx.core.metal.stop_capture.html | 11 +- .../python/_autosummary/mlx.core.min.html | 11 +- .../python/_autosummary/mlx.core.minimum.html | 11 +- .../_autosummary/mlx.core.moveaxis.html | 11 +- .../_autosummary/mlx.core.multiply.html | 11 +- .../_autosummary/mlx.core.nan_to_num.html | 11 +- .../_autosummary/mlx.core.negative.html | 11 +- .../_autosummary/mlx.core.new_stream.html | 11 +- .../_autosummary/mlx.core.not_equal.html | 11 +- .../python/_autosummary/mlx.core.ones.html | 11 +- .../_autosummary/mlx.core.ones_like.html | 11 +- .../python/_autosummary/mlx.core.outer.html | 11 +- .../python/_autosummary/mlx.core.pad.html | 11 +- .../_autosummary/mlx.core.partition.html | 11 +- .../python/_autosummary/mlx.core.power.html | 11 +- .../python/_autosummary/mlx.core.prod.html | 11 +- .../_autosummary/mlx.core.put_along_axis.html | 11 +- .../_autosummary/mlx.core.quantize.html | 11 +- .../mlx.core.quantized_matmul.html | 11 +- .../python/_autosummary/mlx.core.radians.html | 11 +- .../mlx.core.random.bernoulli.html | 11 +- .../mlx.core.random.categorical.html | 11 +- .../_autosummary/mlx.core.random.gumbel.html | 11 +- .../_autosummary/mlx.core.random.key.html | 11 +- .../_autosummary/mlx.core.random.laplace.html | 11 +- .../mlx.core.random.multivariate_normal.html | 11 +- .../_autosummary/mlx.core.random.normal.html | 11 +- .../mlx.core.random.permutation.html | 11 +- .../_autosummary/mlx.core.random.randint.html | 11 +- .../_autosummary/mlx.core.random.seed.html | 11 +- .../_autosummary/mlx.core.random.split.html | 11 +- .../mlx.core.random.truncated_normal.html | 11 +- .../_autosummary/mlx.core.random.uniform.html | 11 +- .../python/_autosummary/mlx.core.real.html | 11 +- .../_autosummary/mlx.core.reciprocal.html | 11 +- .../_autosummary/mlx.core.remainder.html | 11 +- .../python/_autosummary/mlx.core.repeat.html | 11 +- .../python/_autosummary/mlx.core.reshape.html | 11 +- .../_autosummary/mlx.core.right_shift.html | 11 +- .../python/_autosummary/mlx.core.roll.html | 11 +- .../python/_autosummary/mlx.core.round.html | 11 +- .../python/_autosummary/mlx.core.rsqrt.html | 11 +- .../python/_autosummary/mlx.core.save.html | 11 +- .../_autosummary/mlx.core.save_gguf.html | 11 +- .../mlx.core.save_safetensors.html | 11 +- .../python/_autosummary/mlx.core.savez.html | 11 +- .../mlx.core.savez_compressed.html | 11 +- .../mlx.core.set_default_device.html | 11 +- .../mlx.core.set_default_stream.html | 11 +- .../python/_autosummary/mlx.core.sigmoid.html | 11 +- .../python/_autosummary/mlx.core.sign.html | 11 +- .../python/_autosummary/mlx.core.sin.html | 11 +- .../python/_autosummary/mlx.core.sinh.html | 11 +- .../python/_autosummary/mlx.core.softmax.html | 11 +- .../python/_autosummary/mlx.core.sort.html | 11 +- .../python/_autosummary/mlx.core.split.html | 11 +- .../python/_autosummary/mlx.core.sqrt.html | 11 +- .../python/_autosummary/mlx.core.square.html | 11 +- .../python/_autosummary/mlx.core.squeeze.html | 11 +- .../python/_autosummary/mlx.core.stack.html | 11 +- .../python/_autosummary/mlx.core.std.html | 11 +- .../_autosummary/mlx.core.stop_gradient.html | 11 +- .../python/_autosummary/mlx.core.stream.html | 11 +- .../_autosummary/mlx.core.subtract.html | 11 +- .../python/_autosummary/mlx.core.sum.html | 11 +- .../_autosummary/mlx.core.swapaxes.html | 11 +- .../_autosummary/mlx.core.synchronize.html | 11 +- .../python/_autosummary/mlx.core.take.html | 11 +- .../mlx.core.take_along_axis.html | 11 +- .../python/_autosummary/mlx.core.tan.html | 11 +- .../python/_autosummary/mlx.core.tanh.html | 11 +- .../_autosummary/mlx.core.tensordot.html | 11 +- .../python/_autosummary/mlx.core.tile.html | 11 +- .../python/_autosummary/mlx.core.topk.html | 11 +- .../python/_autosummary/mlx.core.trace.html | 11 +- .../_autosummary/mlx.core.transpose.html | 11 +- .../python/_autosummary/mlx.core.tri.html | 11 +- .../python/_autosummary/mlx.core.tril.html | 11 +- .../python/_autosummary/mlx.core.triu.html | 11 +- .../_autosummary/mlx.core.value_and_grad.html | 11 +- .../python/_autosummary/mlx.core.var.html | 11 +- .../python/_autosummary/mlx.core.view.html | 11 +- .../python/_autosummary/mlx.core.vjp.html | 11 +- .../python/_autosummary/mlx.core.vmap.html | 11 +- .../python/_autosummary/mlx.core.where.html | 11 +- .../python/_autosummary/mlx.core.zeros.html | 11 +- .../_autosummary/mlx.core.zeros_like.html | 11 +- .../python/_autosummary/mlx.nn.quantize.html | 11 +- .../_autosummary/mlx.nn.value_and_grad.html | 11 +- .../mlx.optimizers.clip_grad_norm.html | 11 +- .../_autosummary/mlx.utils.tree_flatten.html | 11 +- .../_autosummary/mlx.utils.tree_map.html | 11 +- .../mlx.utils.tree_map_with_path.html | 11 +- .../_autosummary/mlx.utils.tree_reduce.html | 11 +- .../mlx.utils.tree_unflatten.html | 11 +- .../python/_autosummary/stream_class.html | 11 +- docs/build/html/python/array.html | 11 +- docs/build/html/python/data_types.html | 11 +- .../html/python/devices_and_streams.html | 11 +- docs/build/html/python/distributed.html | 11 +- docs/build/html/python/fast.html | 11 +- docs/build/html/python/fft.html | 11 +- docs/build/html/python/linalg.html | 11 +- docs/build/html/python/metal.html | 11 +- docs/build/html/python/nn.html | 11 +- .../python/nn/_autosummary/mlx.nn.ALiBi.html | 11 +- .../nn/_autosummary/mlx.nn.AvgPool1d.html | 11 +- .../nn/_autosummary/mlx.nn.AvgPool2d.html | 11 +- .../nn/_autosummary/mlx.nn.BatchNorm.html | 11 +- .../python/nn/_autosummary/mlx.nn.CELU.html | 11 +- .../python/nn/_autosummary/mlx.nn.Conv1d.html | 11 +- .../python/nn/_autosummary/mlx.nn.Conv2d.html | 11 +- .../python/nn/_autosummary/mlx.nn.Conv3d.html | 11 +- .../_autosummary/mlx.nn.ConvTranspose1d.html | 11 +- .../_autosummary/mlx.nn.ConvTranspose2d.html | 11 +- .../_autosummary/mlx.nn.ConvTranspose3d.html | 11 +- .../nn/_autosummary/mlx.nn.Dropout.html | 11 +- .../nn/_autosummary/mlx.nn.Dropout2d.html | 11 +- .../nn/_autosummary/mlx.nn.Dropout3d.html | 11 +- .../python/nn/_autosummary/mlx.nn.ELU.html | 11 +- .../nn/_autosummary/mlx.nn.Embedding.html | 11 +- .../python/nn/_autosummary/mlx.nn.GELU.html | 11 +- .../python/nn/_autosummary/mlx.nn.GLU.html | 11 +- .../python/nn/_autosummary/mlx.nn.GRU.html | 11 +- .../nn/_autosummary/mlx.nn.GroupNorm.html | 11 +- .../nn/_autosummary/mlx.nn.HardShrink.html | 11 +- .../nn/_autosummary/mlx.nn.HardTanh.html | 11 +- .../nn/_autosummary/mlx.nn.Hardswish.html | 11 +- .../nn/_autosummary/mlx.nn.InstanceNorm.html | 11 +- .../python/nn/_autosummary/mlx.nn.LSTM.html | 11 +- .../nn/_autosummary/mlx.nn.LayerNorm.html | 11 +- .../nn/_autosummary/mlx.nn.LeakyReLU.html | 11 +- .../python/nn/_autosummary/mlx.nn.Linear.html | 11 +- .../nn/_autosummary/mlx.nn.LogSigmoid.html | 11 +- .../nn/_autosummary/mlx.nn.LogSoftmax.html | 11 +- .../nn/_autosummary/mlx.nn.MaxPool1d.html | 11 +- .../nn/_autosummary/mlx.nn.MaxPool2d.html | 11 +- .../python/nn/_autosummary/mlx.nn.Mish.html | 11 +- .../nn/_autosummary/mlx.nn.Module.apply.html | 11 +- .../mlx.nn.Module.apply_to_modules.html | 11 +- .../_autosummary/mlx.nn.Module.children.html | 11 +- .../nn/_autosummary/mlx.nn.Module.eval.html | 11 +- .../mlx.nn.Module.filter_and_map.html | 11 +- .../nn/_autosummary/mlx.nn.Module.freeze.html | 11 +- .../mlx.nn.Module.leaf_modules.html | 11 +- .../mlx.nn.Module.load_weights.html | 11 +- .../_autosummary/mlx.nn.Module.modules.html | 11 +- .../mlx.nn.Module.named_modules.html | 11 +- .../mlx.nn.Module.parameters.html | 11 +- .../mlx.nn.Module.save_weights.html | 11 +- .../_autosummary/mlx.nn.Module.set_dtype.html | 11 +- .../nn/_autosummary/mlx.nn.Module.state.html | 11 +- .../nn/_autosummary/mlx.nn.Module.train.html | 11 +- .../mlx.nn.Module.trainable_parameters.html | 11 +- .../_autosummary/mlx.nn.Module.training.html | 11 +- .../_autosummary/mlx.nn.Module.unfreeze.html | 11 +- .../nn/_autosummary/mlx.nn.Module.update.html | 11 +- .../mlx.nn.Module.update_modules.html | 11 +- .../mlx.nn.MultiHeadAttention.html | 11 +- .../python/nn/_autosummary/mlx.nn.PReLU.html | 11 +- .../mlx.nn.QuantizedEmbedding.html | 11 +- .../_autosummary/mlx.nn.QuantizedLinear.html | 11 +- .../nn/_autosummary/mlx.nn.RMSNorm.html | 11 +- .../python/nn/_autosummary/mlx.nn.RNN.html | 11 +- .../python/nn/_autosummary/mlx.nn.ReLU.html | 11 +- .../python/nn/_autosummary/mlx.nn.ReLU6.html | 11 +- .../python/nn/_autosummary/mlx.nn.RoPE.html | 11 +- .../python/nn/_autosummary/mlx.nn.SELU.html | 11 +- .../nn/_autosummary/mlx.nn.Sequential.html | 11 +- .../python/nn/_autosummary/mlx.nn.SiLU.html | 11 +- .../nn/_autosummary/mlx.nn.Sigmoid.html | 11 +- .../mlx.nn.SinusoidalPositionalEncoding.html | 11 +- .../nn/_autosummary/mlx.nn.Softmax.html | 11 +- .../nn/_autosummary/mlx.nn.Softmin.html | 11 +- .../nn/_autosummary/mlx.nn.Softplus.html | 11 +- .../nn/_autosummary/mlx.nn.Softshrink.html | 11 +- .../nn/_autosummary/mlx.nn.Softsign.html | 11 +- .../python/nn/_autosummary/mlx.nn.Step.html | 11 +- .../python/nn/_autosummary/mlx.nn.Tanh.html | 11 +- .../nn/_autosummary/mlx.nn.Transformer.html | 11 +- .../nn/_autosummary/mlx.nn.Upsample.html | 11 +- .../nn/_autosummary/mlx.nn.init.constant.html | 11 +- .../mlx.nn.init.glorot_normal.html | 11 +- .../mlx.nn.init.glorot_uniform.html | 11 +- .../_autosummary/mlx.nn.init.he_normal.html | 11 +- .../_autosummary/mlx.nn.init.he_uniform.html | 11 +- .../nn/_autosummary/mlx.nn.init.identity.html | 11 +- .../nn/_autosummary/mlx.nn.init.normal.html | 11 +- .../nn/_autosummary/mlx.nn.init.uniform.html | 11 +- .../_autosummary_functions/mlx.nn.celu.html | 11 +- .../nn/_autosummary_functions/mlx.nn.elu.html | 11 +- .../_autosummary_functions/mlx.nn.gelu.html | 11 +- .../mlx.nn.gelu_approx.html | 11 +- .../mlx.nn.gelu_fast_approx.html | 11 +- .../nn/_autosummary_functions/mlx.nn.glu.html | 11 +- .../mlx.nn.hard_shrink.html | 11 +- .../mlx.nn.hard_tanh.html | 11 +- .../mlx.nn.hardswish.html | 11 +- .../mlx.nn.leaky_relu.html | 11 +- .../mlx.nn.log_sigmoid.html | 11 +- .../mlx.nn.log_softmax.html | 11 +- .../mlx.nn.losses.binary_cross_entropy.html | 11 +- .../mlx.nn.losses.cosine_similarity_loss.html | 11 +- .../mlx.nn.losses.cross_entropy.html | 11 +- .../mlx.nn.losses.gaussian_nll_loss.html | 11 +- .../mlx.nn.losses.hinge_loss.html | 11 +- .../mlx.nn.losses.huber_loss.html | 11 +- .../mlx.nn.losses.kl_div_loss.html | 11 +- .../mlx.nn.losses.l1_loss.html | 11 +- .../mlx.nn.losses.log_cosh_loss.html | 11 +- .../mlx.nn.losses.margin_ranking_loss.html | 11 +- .../mlx.nn.losses.mse_loss.html | 11 +- .../mlx.nn.losses.nll_loss.html | 11 +- .../mlx.nn.losses.smooth_l1_loss.html | 11 +- .../mlx.nn.losses.triplet_loss.html | 11 +- .../_autosummary_functions/mlx.nn.mish.html | 11 +- .../_autosummary_functions/mlx.nn.prelu.html | 11 +- .../_autosummary_functions/mlx.nn.relu.html | 11 +- .../_autosummary_functions/mlx.nn.relu6.html | 11 +- .../_autosummary_functions/mlx.nn.selu.html | 11 +- .../mlx.nn.sigmoid.html | 11 +- .../_autosummary_functions/mlx.nn.silu.html | 11 +- .../mlx.nn.softmax.html | 11 +- .../mlx.nn.softmin.html | 11 +- .../mlx.nn.softplus.html | 11 +- .../mlx.nn.softshrink.html | 11 +- .../_autosummary_functions/mlx.nn.step.html | 11 +- .../_autosummary_functions/mlx.nn.tanh.html | 11 +- docs/build/html/python/nn/functions.html | 11 +- docs/build/html/python/nn/init.html | 11 +- docs/build/html/python/nn/layers.html | 11 +- docs/build/html/python/nn/losses.html | 11 +- docs/build/html/python/nn/module.html | 11 +- docs/build/html/python/ops.html | 11 +- docs/build/html/python/optimizers.html | 11 +- .../_autosummary/mlx.optimizers.AdaDelta.html | 11 +- .../mlx.optimizers.Adafactor.html | 11 +- .../_autosummary/mlx.optimizers.Adagrad.html | 11 +- .../_autosummary/mlx.optimizers.Adam.html | 11 +- .../_autosummary/mlx.optimizers.AdamW.html | 11 +- .../_autosummary/mlx.optimizers.Adamax.html | 11 +- .../_autosummary/mlx.optimizers.Lion.html | 11 +- ....optimizers.Optimizer.apply_gradients.html | 11 +- .../mlx.optimizers.Optimizer.init.html | 11 +- .../mlx.optimizers.Optimizer.state.html | 11 +- .../mlx.optimizers.Optimizer.update.html | 11 +- .../_autosummary/mlx.optimizers.RMSprop.html | 11 +- .../_autosummary/mlx.optimizers.SGD.html | 11 +- .../mlx.optimizers.cosine_decay.html | 11 +- .../mlx.optimizers.exponential_decay.html | 11 +- .../mlx.optimizers.join_schedules.html | 11 +- .../mlx.optimizers.linear_schedule.html | 11 +- .../mlx.optimizers.step_decay.html | 11 +- .../python/optimizers/common_optimizers.html | 11 +- .../html/python/optimizers/optimizer.html | 11 +- .../html/python/optimizers/schedulers.html | 11 +- docs/build/html/python/random.html | 11 +- docs/build/html/python/transforms.html | 11 +- docs/build/html/python/tree_utils.html | 11 +- docs/build/html/scatter_8h.html | 83 +- docs/build/html/scatter_8h_source.html | 128 +- docs/build/html/search.html | 11 +- docs/build/html/search/all_1.js | 220 ++-- docs/build/html/search/all_10.js | 58 +- docs/build/html/search/all_12.js | 65 +- docs/build/html/search/all_13.js | 355 +++-- docs/build/html/search/all_14.js | 55 +- docs/build/html/search/all_16.js | 38 +- docs/build/html/search/all_2.js | 207 +-- docs/build/html/search/all_3.js | 242 ++-- docs/build/html/search/all_5.js | 92 +- docs/build/html/search/all_6.js | 103 +- docs/build/html/search/all_7.js | 128 +- docs/build/html/search/all_9.js | 93 +- docs/build/html/search/all_a.js | 6 +- docs/build/html/search/all_b.js | 30 +- docs/build/html/search/all_c.js | 4 +- docs/build/html/search/all_d.js | 197 +-- docs/build/html/search/all_f.js | 83 +- docs/build/html/search/classes_2.js | 28 +- docs/build/html/search/classes_9.js | 11 +- docs/build/html/search/classes_c.js | 33 +- docs/build/html/search/classes_f.js | 13 +- docs/build/html/search/defines_7.js | 3 +- docs/build/html/search/files_11.js | 3 +- docs/build/html/search/files_8.js | 3 +- docs/build/html/search/functions_13.js | 255 ++-- docs/build/html/search/functions_14.js | 33 +- docs/build/html/search/functions_3.js | 171 +-- docs/build/html/search/functions_5.js | 63 +- docs/build/html/search/functions_6.js | 9 +- docs/build/html/search/functions_7.js | 106 +- docs/build/html/search/functions_c.js | 4 +- docs/build/html/search/functions_d.js | 82 +- docs/build/html/search/functions_f.js | 71 +- docs/build/html/search/searchdata.js | 2 +- docs/build/html/search/typedefs_1.js | 3 +- docs/build/html/search/typedefs_3.js | 3 +- docs/build/html/search/typedefs_4.js | 4 +- docs/build/html/search/typedefs_6.js | 3 +- docs/build/html/search/typedefs_8.js | 9 +- docs/build/html/search/typedefs_a.js | 3 +- docs/build/html/search/typedefs_b.js | 7 +- docs/build/html/search/typedefs_c.js | 8 +- docs/build/html/search/typedefs_d.js | 8 +- docs/build/html/search/typedefs_e.js | 8 + docs/build/html/search/variables_0.js | 24 +- docs/build/html/search/variables_1.js | 64 +- docs/build/html/search/variables_11.js | 7 +- docs/build/html/search/variables_12.js | 50 +- docs/build/html/search/variables_13.js | 12 +- docs/build/html/search/variables_15.js | 4 +- docs/build/html/search/variables_2.js | 3 +- docs/build/html/search/variables_8.js | 5 +- docs/build/html/search/variables_9.js | 4 +- docs/build/html/search/variables_a.js | 16 +- .../html/steel__conv__general_8h_source.html | 26 +- docs/build/html/struct_indices-members.html | 5 +- docs/build/html/struct_indices.html | 18 + docs/build/html/structmetal_1_1is__empty.html | 112 ++ docs/build/html/structmetal_1_1is__empty.png | Bin 0 -> 769 bytes .../build/html/structmetal_1_1is__static.html | 112 ++ docs/build/html/structmetal_1_1is__static.png | Bin 0 -> 1042 bytes .../structmetal_1_1make__void-members.html | 105 ++ .../build/html/structmetal_1_1make__void.html | 132 ++ .../html/structmetal_1_1pointer__element.html | 106 ++ ...t_3_01constant_01_t_01_5_01_4-members.html | 105 ++ ...__element_3_01constant_01_t_01_5_01_4.html | 132 ++ ...ent_3_01device_01_t_01_5_01_4-members.html | 105 ++ ...er__element_3_01device_01_t_01_5_01_4.html | 132 ++ ...ent_3_01thread_01_t_01_5_01_4-members.html | 105 ++ ...er__element_3_01thread_01_t_01_5_01_4.html | 132 ++ ..._01threadgroup_01_t_01_5_01_4-members.html | 105 ++ ...lement_3_01threadgroup_01_t_01_5_01_4.html | 132 ++ ...tructmlx_1_1steel_1_1_base_m_m_a_frag.html | 106 ++ ...rag_3_01_t_00_018_00_018_01_4-members.html | 118 ++ ..._m_m_a_frag_3_01_t_00_018_00_018_01_4.html | 589 +++++++++ ...tmlx_1_1steel_1_1_block_m_m_a-members.html | 26 +- .../structmlx_1_1steel_1_1_block_m_m_a.html | 269 ++-- ...ctmlx_1_1steel_1_1_m_m_a_tile-members.html | 131 ++ .../structmlx_1_1steel_1_1_m_m_a_tile.html | 810 ++++++++++++ ..._1steel_1_1integral__constant-members.html | 108 ++ ...uctmlx_1_1steel_1_1integral__constant.html | 225 ++++ ...ructmlx_1_1steel_1_1integral__constant.png | Bin 0 -> 1444 bytes ...tmlx_1_1steel_1_1is__integral-members.html | 108 ++ .../structmlx_1_1steel_1_1is__integral.html | 132 ++ .../structmlx_1_1steel_1_1is__integral.png | Bin 0 -> 1072 bytes ...stant_3_01_t_00_01v_01_4_01_4-members.html | 108 ++ ...ral__constant_3_01_t_00_01v_01_4_01_4.html | 132 ++ ...gral__constant_3_01_t_00_01v_01_4_01_4.png | Bin 0 -> 1189 bytes docs/build/html/type__traits_8h.html | 142 ++ docs/build/html/type__traits_8h_source.html | 178 +++ docs/build/html/usage/compile.html | 11 +- docs/build/html/usage/distributed.html | 11 +- .../build/html/usage/function_transforms.html | 11 +- docs/build/html/usage/indexing.html | 11 +- docs/build/html/usage/lazy_evaluation.html | 11 +- docs/build/html/usage/numpy.html | 11 +- docs/build/html/usage/quick_start.html | 11 +- docs/build/html/usage/saving_and_loading.html | 11 +- docs/build/html/usage/unified_memory.html | 11 +- docs/build/html/usage/using_streams.html | 11 +- 658 files changed, 12237 insertions(+), 5351 deletions(-) create mode 100644 docs/build/html/dir_1b634d20b746ceaa770a5379eca5f24a.html create mode 100644 docs/build/html/integral__constant_8h.html create mode 100644 docs/build/html/integral__constant_8h_source.html create mode 100644 docs/build/html/search/typedefs_e.js create mode 100644 docs/build/html/structmetal_1_1is__empty.html create mode 100644 docs/build/html/structmetal_1_1is__empty.png create mode 100644 docs/build/html/structmetal_1_1is__static.html create mode 100644 docs/build/html/structmetal_1_1is__static.png create mode 100644 docs/build/html/structmetal_1_1make__void-members.html create mode 100644 docs/build/html/structmetal_1_1make__void.html create mode 100644 docs/build/html/structmetal_1_1pointer__element.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4-members.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01constant_01_t_01_5_01_4.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4-members.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01device_01_t_01_5_01_4.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4-members.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01thread_01_t_01_5_01_4.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4-members.html create mode 100644 docs/build/html/structmetal_1_1pointer__element_3_01threadgroup_01_t_01_5_01_4.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_base_m_m_a_frag.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_base_m_m_a_frag_3_01_t_00_018_00_018_01_4.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_m_m_a_tile-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1_m_m_a_tile.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1integral__constant-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1integral__constant.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1integral__constant.png create mode 100644 docs/build/html/structmlx_1_1steel_1_1is__integral-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1is__integral.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1is__integral.png create mode 100644 docs/build/html/structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4-members.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.html create mode 100644 docs/build/html/structmlx_1_1steel_1_1is__integral_3_01integral__constant_3_01_t_00_01v_01_4_01_4.png create mode 100644 docs/build/html/type__traits_8h.html create mode 100644 docs/build/html/type__traits_8h_source.html diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 50696688e..3cf7fbd01 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -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: c431be841be9331fc029403834cef1bf +config: ad0493b39127084c2ab6331071fb3c9b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 51bee6816..213607d15 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '0.19.1', + VERSION: '0.19.2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/build/html/annotated.html b/docs/build/html/annotated.html index 780672292..87141e0a0 100644 --- a/docs/build/html/annotated.html +++ b/docs/build/html/annotated.html @@ -91,6 +91,14 @@ $(function(){ initResizable(false); });
[detail level 12345]
+ + + + + + + + @@ -318,33 +326,39 @@ $(function(){ initResizable(false); }); - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/build/html/backend_2metal_2device_8h_source.html b/docs/build/html/backend_2metal_2device_8h_source.html index 4ac2509f2..8b936bd40 100644 --- a/docs/build/html/backend_2metal_2device_8h_source.html +++ b/docs/build/html/backend_2metal_2device_8h_source.html @@ -258,106 +258,113 @@ $(function(){ initResizable(false); });
137 };
138
-
139 void new_queue(int index);
-
140 MTL::CommandBuffer* get_command_buffer(int index);
-
141 int get_command_buffer_ops(int index);
-
142 void increment_command_buffer_ops(int index);
-
143 void commit_command_buffer(int index);
-
144 CommandEncoder& get_command_encoder(int index);
-
145 void end_encoding(int index);
-
146
-
147 void register_library(
-
148 const std::string& lib_name,
-
149 const std::string& lib_path);
-
150
-
151 // Note, this should remain in the header so that it is not dynamically
-
152 // linked
-
-
153 void register_library(const std::string& lib_name) {
-
154 if (auto it = library_map_.find(lib_name); it == library_map_.end()) {
-
155 register_library(lib_name, get_colocated_mtllib_path(lib_name));
-
156 }
-
157 }
+
+
139 const std::string& get_architecture() {
+
140 return arch_;
+
141 }
+
+
142
+
143 void new_queue(int index);
+
144 MTL::CommandBuffer* get_command_buffer(int index);
+ + +
147 void commit_command_buffer(int index);
+ +
149 void end_encoding(int index);
+
150
+ +
152 const std::string& lib_name,
+
153 const std::string& lib_path);
+
154
+
155 // Note, this should remain in the header so that it is not dynamically
+
156 // linked
+
+
157 void register_library(const std::string& lib_name) {
+
158 if (auto it = library_map_.find(lib_name); it == library_map_.end()) {
+
159 register_library(lib_name, get_colocated_mtllib_path(lib_name));
+
160 }
+
161 }
-
158
-
159 MTL::Library* get_library(
-
160 const std::string& name,
-
161 const std::function<std::string(void)>& builder);
162
-
163 MTL::ComputePipelineState* get_kernel(
-
164 const std::string& base_name,
-
165 MTL::Library* mtl_lib,
-
166 const std::string& hash_name = "",
-
167 const MTLFCList& func_consts = {},
-
168 const std::vector<MTL::Function*>& linked_functions = {});
-
169
-
170 MTL::ComputePipelineState* get_kernel(
-
171 const std::string& base_name,
-
172 const std::string& lib_name = "mlx",
-
173 const std::string& hash_name = "",
-
174 const MTLFCList& func_consts = {},
-
175 const std::vector<MTL::Function*>& linked_functions = {});
-
176
-
177 MTL::ArgumentEncoder* argument_encoder(
-
178 const std::vector<MTL::ArgumentDescriptor*>& arg_descs) const;
-
179
-
180 // Record temporary arrays for the given stream index
-
181 void add_temporary(array arr, int index);
-
182 void add_temporaries(std::vector<array> arrays, int index);
+
163 MTL::Library* get_library(
+
164 const std::string& name,
+
165 const std::function<std::string(void)>& builder);
+
166
+
167 MTL::ComputePipelineState* get_kernel(
+
168 const std::string& base_name,
+
169 MTL::Library* mtl_lib,
+
170 const std::string& hash_name = "",
+
171 const MTLFCList& func_consts = {},
+
172 const std::vector<MTL::Function*>& linked_functions = {});
+
173
+
174 MTL::ComputePipelineState* get_kernel(
+
175 const std::string& base_name,
+
176 const std::string& lib_name = "mlx",
+
177 const std::string& hash_name = "",
+
178 const MTLFCList& func_consts = {},
+
179 const std::vector<MTL::Function*>& linked_functions = {});
+
180
+
181 MTL::ArgumentEncoder* argument_encoder(
+
182 const std::vector<MTL::ArgumentDescriptor*>& arg_descs) const;
183
-
184 void set_residency_set(const MTL::ResidencySet* residency_set);
-
185
-
186 private:
-
187 DeviceStream& get_stream_(int index) {
-
188 return stream_map_.find(index)->second;
-
189 }
-
190 MTL::Library* get_library_cache_(const std::string& name);
-
191
-
192 MTL::Library* get_library_(const std::string& name);
-
193 MTL::Library* build_library_(const std::string& source_string);
-
194
-
195 MTL::Function* get_function_(const std::string& name, MTL::Library* mtl_lib);
-
196
-
197 MTL::Function* get_function_(
-
198 const std::string& name,
-
199 const std::string& specialized_name,
-
200 const MTLFCList& func_consts,
-
201 MTL::Library* mtl_lib);
-
202
-
203 MTL::LinkedFunctions* get_linked_functions_(
-
204 const std::vector<MTL::Function*>& funcs);
-
205
-
206 MTL::ComputePipelineState* get_kernel_(
-
207 const std::string& name,
-
208 const MTL::Function* mtl_function);
+
184 // Record temporary arrays for the given stream index
+
185 void add_temporary(array arr, int index);
+
186 void add_temporaries(std::vector<array> arrays, int index);
+
187
+
188 void set_residency_set(const MTL::ResidencySet* residency_set);
+
189
+
190 private:
+
191 DeviceStream& get_stream_(int index) {
+
192 return stream_map_.find(index)->second;
+
193 }
+
194 MTL::Library* get_library_cache_(const std::string& name);
+
195
+
196 MTL::Library* get_library_(const std::string& name);
+
197 MTL::Library* build_library_(const std::string& source_string);
+
198
+
199 MTL::Function* get_function_(const std::string& name, MTL::Library* mtl_lib);
+
200
+
201 MTL::Function* get_function_(
+
202 const std::string& name,
+
203 const std::string& specialized_name,
+
204 const MTLFCList& func_consts,
+
205 MTL::Library* mtl_lib);
+
206
+
207 MTL::LinkedFunctions* get_linked_functions_(
+
208 const std::vector<MTL::Function*>& funcs);
209
210 MTL::ComputePipelineState* get_kernel_(
211 const std::string& name,
-
212 const MTL::Function* mtl_function,
-
213 const MTL::LinkedFunctions* linked_functions);
-
214
-
215 MTL::ComputePipelineState* get_kernel_(
-
216 const std::string& base_name,
-
217 MTL::Library* mtl_lib,
-
218 const std::string& hash_name,
-
219 const MTLFCList& func_consts = {},
-
220 const std::vector<MTL::Function*>& linked_functions = {});
-
221
-
222 MTL::Device* device_;
-
223 std::unordered_map<int32_t, DeviceStream> stream_map_;
-
224
-
225 std::shared_mutex kernel_mtx_;
-
226 std::unordered_map<std::string, MTL::ComputePipelineState*> kernel_map_;
-
227
-
228 std::shared_mutex library_mtx_;
-
229 std::unordered_map<std::string, MTL::Library*> library_map_;
-
230 const MTL::ResidencySet* residency_set_{nullptr};
-
231};
+
212 const MTL::Function* mtl_function);
+
213
+
214 MTL::ComputePipelineState* get_kernel_(
+
215 const std::string& name,
+
216 const MTL::Function* mtl_function,
+
217 const MTL::LinkedFunctions* linked_functions);
+
218
+
219 MTL::ComputePipelineState* get_kernel_(
+
220 const std::string& base_name,
+
221 MTL::Library* mtl_lib,
+
222 const std::string& hash_name,
+
223 const MTLFCList& func_consts = {},
+
224 const std::vector<MTL::Function*>& linked_functions = {});
+
225
+
226 MTL::Device* device_;
+
227 std::unordered_map<int32_t, DeviceStream> stream_map_;
+
228
+
229 std::shared_mutex kernel_mtx_;
+
230 std::unordered_map<std::string, MTL::ComputePipelineState*> kernel_map_;
+
231
+
232 std::shared_mutex library_mtx_;
+
233 std::unordered_map<std::string, MTL::Library*> library_map_;
+
234 const MTL::ResidencySet* residency_set_{nullptr};
+
235 std::string arch_;
+
236};
-
232
-
233Device& device(mlx::core::Device);
-
234
-
235} // namespace mlx::core::metal
+
237
+
238Device& device(mlx::core::Device);
+
239
+
240} // namespace mlx::core::metal
Definition array.h:20
Definition device.h:128
@@ -368,6 +375,7 @@ $(function(){ initResizable(false); });
~Device()
MTL::CommandBuffer * get_command_buffer(int index)
void end_encoding(int index)
+
const std::string & get_architecture()
Definition device.h:139
MTL::ComputePipelineState * get_kernel(const std::string &base_name, MTL::Library *mtl_lib, const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})
MTL::ArgumentEncoder * argument_encoder(const std::vector< MTL::ArgumentDescriptor * > &arg_descs) const
void add_temporaries(std::vector< array > arrays, int index)
@@ -375,7 +383,7 @@ $(function(){ initResizable(false); });
void increment_command_buffer_ops(int index)
void new_queue(int index)
void commit_command_buffer(int index)
-
void register_library(const std::string &lib_name)
Definition device.h:153
+
void register_library(const std::string &lib_name)
Definition device.h:157
Device(const Device &)=delete
void add_temporary(array arr, int index)
Device & operator=(const Device &)=delete
diff --git a/docs/build/html/classes.html b/docs/build/html/classes.html index 86f2fcfe5..31672a75b 100644 --- a/docs/build/html/classes.html +++ b/docs/build/html/classes.html @@ -94,7 +94,7 @@ $(function(){ initResizable(false); });
Abs
Abs (mlx::core)
Abs (mlx::core::detail)
AccumHelper (mlx::steel)
Add
Add (mlx::core)
Add (mlx::core::detail)
add_vec (pocketfft::detail)
add_vec< cmplx< T > > (pocketfft::detail)
AddMM (mlx::core)
AffineQuantize (mlx::core::fast)
aligned_allocator (pocketfft::detail::threading)
AllGather (mlx::core::distributed)
Allocator (mlx::core::allocator)
AllReduce (mlx::core::distributed)
And
Arange (mlx::core)
ArcCos
ArcCos (mlx::core)
ArcCos (mlx::core::detail)
ArcCosh
ArcCosh (mlx::core)
ArcCosh (mlx::core::detail)
ArcSin
ArcSin (mlx::core)
ArcSin (mlx::core::detail)
ArcSinh
ArcSinh (mlx::core)
ArcSinh (mlx::core::detail)
ArcTan
ArcTan (mlx::core)
ArcTan (mlx::core::detail)
ArcTan2
ArcTan2 (mlx::core)
ArcTan2 (mlx::core::detail)
ArcTanh
ArcTanh (mlx::core)
ArcTanh (mlx::core::detail)
ArgPartition (mlx::core)
ArgReduce (mlx::core)
ArgSort (mlx::core)
arr (pocketfft::detail)
arr_info (pocketfft::detail)
array (mlx::core)
array::ArrayIterator (mlx::core)
AsStrided (mlx::core)
AsType (mlx::core)
B
-
_MLX_BFloat16::bits_to_bfloat_struct
BitwiseAnd
BitwiseAnd (mlx::core::detail)
BitwiseBinary (mlx::core)
BitwiseOr
BitwiseOr (mlx::core::detail)
BitwiseXor
BitwiseXor (mlx::core::detail)
BlockLoader (mlx::steel)
BlockMaskedMM (mlx::core)
BlockMergeSort
BlockMMA (mlx::steel)
BlockSwizzle (mlx::steel)
bool4_or_uint
Broadcast (mlx::core)
Buffer (mlx::core::allocator)
+
BaseMMAFrag (mlx::steel)
BaseMMAFrag< T, 8, 8 > (mlx::steel)
_MLX_BFloat16::bits_to_bfloat_struct
BitwiseAnd
BitwiseAnd (mlx::core::detail)
BitwiseBinary (mlx::core)
BitwiseOr
BitwiseOr (mlx::core::detail)
BitwiseXor
BitwiseXor (mlx::core::detail)
BlockLoader (mlx::steel)
BlockMaskedMM (mlx::core)
BlockMergeSort
BlockMMA (mlx::steel)
BlockSwizzle (mlx::steel)
bool4_or_uint
Broadcast (mlx::core)
Buffer (mlx::core::allocator)
C
Ceil
Ceil (mlx::core)
Ceil (mlx::core::detail)
cfftp (pocketfft::detail)
ChannelHelper (mlx::steel)
ChannelHelper< 1 > (mlx::steel)
ChannelHelper< 2 > (mlx::steel)
ChannelHelper< 3 > (mlx::steel)
ChannelHelper< 4 > (mlx::steel)
Cholesky (mlx::core)
cmplx (pocketfft::detail)
cndarr (pocketfft::detail)
CommandEncoder (mlx::core::metal)
CommonAllocator (mlx::core::allocator)
Compiled (mlx::core)
complex128_t (mlx::core)
complex64_t
complex64_t (mlx::core)
Concatenate (mlx::core)
concurrent_queue (pocketfft::detail::threading)
CommandEncoder::ConcurrentContext (mlx::core::metal)
Conjugate
Conjugate (mlx::core)
Conjugate (mlx::core::detail)
ContiguousIterator (mlx::core)
Conv2DGeneralBaseInfo (mlx::steel)
Conv2DGeneralJumpParams (mlx::steel)
Conv2DInputBlockLoaderGeneral (mlx::steel)
Conv2DInputBlockLoaderLargeFilter (mlx::steel)
Conv2DInputBlockLoaderSmallChannels (mlx::steel)
Conv2DInputBlockLoaderSmallFilter (mlx::steel)
Conv2DWeightBlockLoader (mlx::steel)
Conv2DWeightBlockLoaderGeneral (mlx::steel)
Conv2DWeightBlockLoaderSmallChannels (mlx::steel)
Convolution (mlx::core)
Copy (mlx::core)
Cos
Cos (mlx::core)
Cos (mlx::core::detail)
Cosh
Cosh (mlx::core)
Cosh (mlx::core::detail)
CumMax
CumMin
CumProd
CumProd< bool >
CumSum
Custom (mlx::core::fast)
CustomKernel (mlx::core::fast)
CustomKernelShapeInfo (mlx::core::fast)
CustomTransforms (mlx::core)
@@ -115,7 +115,7 @@ $(function(){ initResizable(false); });
Hadamard (mlx::core)
I
-
Imag
Imag (mlx::core::detail)
Imag (mlx::core)
ImplicitGemmConv2DParams (mlx::steel)
Indices
IntOrFloat (mlx::core::detail)
InTracing (mlx::core::detail)
Inverse (mlx::core)
+
Imag
Imag (mlx::core::detail)
Imag (mlx::core)
ImplicitGemmConv2DParams (mlx::steel)
Indices
integral_constant (mlx::steel)
IntOrFloat (mlx::core::detail)
InTracing (mlx::core::detail)
Inverse (mlx::core)
is_empty (metal)
is_integral (mlx::steel)
is_integral< integral_constant< T, v > > (mlx::steel)
is_static (metal)
K
KernelMergeSort
KernelMultiBlockMergeSort
KeySequence (mlx::core::random)
@@ -124,7 +124,7 @@ $(function(){ initResizable(false); });
latch (pocketfft::detail::threading)
LayerNorm (mlx::core::fast)
LayerNormVJP (mlx::core::fast)
LeftShift
LeftShift (mlx::core::detail)
Less
Less (mlx::core::detail)
Less (mlx::core)
LessEqual
LessEqual (mlx::core::detail)
LessEqual (mlx::core)
LessThan
Limits
Limits< bfloat16_t >
Limits< bool >
Limits< complex64_t >
Limits< float >
Limits< half >
Limits< int16_t >
Limits< int32_t >
Limits< int64_t >
Limits< int8_t >
Limits< uint16_t >
Limits< uint32_t >
Limits< uint64_t >
Limits< uint8_t >
Load (mlx::core)
Log
Log (mlx::core::detail)
Log (mlx::core)
Log10
Log10 (mlx::core::detail)
Log1p
Log1p (mlx::core::detail)
Log1p (mlx::core)
Log2
Log2 (mlx::core::detail)
LogAddExp
LogAddExp (mlx::core::detail)
LogAddExp (mlx::core)
LogicalAnd
LogicalAnd (mlx::core::detail)
LogicalAnd (mlx::core)
LogicalNot
LogicalNot (mlx::core::detail)
LogicalNot (mlx::core)
LogicalOr
LogicalOr (mlx::core::detail)
LogicalOr (mlx::core)
LoopAlignment (mlx::steel)
looped_elem_to_loc
looped_elem_to_loc< 0, offset_t >
looped_elem_to_loc< 1, offset_t >
M
-
Matmul (mlx::core)
Max
Maximum
Maximum (mlx::core::detail)
Maximum (mlx::core)
MetalAllocator (mlx::core::metal)
Min
Minimum
Minimum (mlx::core::detail)
Minimum (mlx::core)
mlx_atomic
mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >
MLXConvParams
MLXFastAttentionParams
MLXScaledDotProductAttentionParams
multi_iter (pocketfft::detail)
Multiply (mlx::core::detail)
Multiply (mlx::core)
Multiply
+
make_void (metal)
Matmul (mlx::core)
Max
Maximum
Maximum (mlx::core::detail)
Maximum (mlx::core)
MetalAllocator (mlx::core::metal)
Min
Minimum
Minimum (mlx::core::detail)
Minimum (mlx::core)
mlx_atomic
mlx_atomic< T, enable_if_t< is_metal_atomic< T > > >
MLXConvParams
MLXFastAttentionParams
MLXScaledDotProductAttentionParams
MMATile (mlx::steel)
multi_iter (pocketfft::detail)
Multiply (mlx::core::detail)
Multiply (mlx::core)
Multiply
N
NaNEqual (mlx::core::detail)
NaNEqual
ndarr (pocketfft::detail)
Negative (mlx::core::detail)
Negative (mlx::core)
Negative
NodeNamer (mlx::core)
None
NotEqual (mlx::core::detail)
NotEqual (mlx::core)
NotEqual
NumberOfElements (mlx::core)
@@ -133,7 +133,7 @@ $(function(){ initResizable(false); });
Or
P
-
Pad (mlx::core)
ParallelFileReader (mlx::core::io)
Partition (mlx::core)
pocketfft_c (pocketfft::detail)
pocketfft_r (pocketfft::detail)
Power (mlx::core::detail)
Power (mlx::core)
Power
Primitive (mlx::core)
PrintFormatter (mlx::core)
Prod
+
Pad (mlx::core)
ParallelFileReader (mlx::core::io)
Partition (mlx::core)
pocketfft_c (pocketfft::detail)
pocketfft_r (pocketfft::detail)
pointer_element (metal)
pointer_element< constant T * > (metal)
pointer_element< device T * > (metal)
pointer_element< thread T * > (metal)
pointer_element< threadgroup T * > (metal)
Power (mlx::core::detail)
Power (mlx::core)
Power
Primitive (mlx::core)
PrintFormatter (mlx::core)
Prod
Q
QRF (mlx::core)
QuantizedBlockLoader
QuantizedMatmul (mlx::core)
diff --git a/docs/build/html/classmlx_1_1core_1_1metal_1_1_device-members.html b/docs/build/html/classmlx_1_1core_1_1metal_1_1_device-members.html index de06eb6a1..d7b6c9cbc 100644 --- a/docs/build/html/classmlx_1_1core_1_1metal_1_1_device-members.html +++ b/docs/build/html/classmlx_1_1core_1_1metal_1_1_device-members.html @@ -101,20 +101,21 @@ $(function(){ initResizable(false); }); - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
 Nmetal
 Nmlx
 Npocketfft
Device()mlx::core::metal::Device
Device(const Device &)=deletemlx::core::metal::Device
end_encoding(int index)mlx::core::metal::Device
get_command_buffer(int index)mlx::core::metal::Device
get_command_buffer_ops(int index)mlx::core::metal::Device
get_command_encoder(int index)mlx::core::metal::Device
get_kernel(const std::string &base_name, MTL::Library *mtl_lib, const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})mlx::core::metal::Device
get_kernel(const std::string &base_name, const std::string &lib_name="mlx", const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})mlx::core::metal::Device
get_library(const std::string &name, const std::function< std::string(void)> &builder)mlx::core::metal::Device
increment_command_buffer_ops(int index)mlx::core::metal::Device
mtl_device()mlx::core::metal::Deviceinline
new_queue(int index)mlx::core::metal::Device
operator=(const Device &)=deletemlx::core::metal::Device
register_library(const std::string &lib_name, const std::string &lib_path)mlx::core::metal::Device
register_library(const std::string &lib_name)mlx::core::metal::Deviceinline
set_residency_set(const MTL::ResidencySet *residency_set)mlx::core::metal::Device
~Device()mlx::core::metal::Device
get_architecture()mlx::core::metal::Deviceinline
get_command_buffer(int index)mlx::core::metal::Device
get_command_buffer_ops(int index)mlx::core::metal::Device
get_command_encoder(int index)mlx::core::metal::Device
get_kernel(const std::string &base_name, MTL::Library *mtl_lib, const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})mlx::core::metal::Device
get_kernel(const std::string &base_name, const std::string &lib_name="mlx", const std::string &hash_name="", const MTLFCList &func_consts={}, const std::vector< MTL::Function * > &linked_functions={})mlx::core::metal::Device
get_library(const std::string &name, const std::function< std::string(void)> &builder)mlx::core::metal::Device
increment_command_buffer_ops(int index)mlx::core::metal::Device
mtl_device()mlx::core::metal::Deviceinline
new_queue(int index)mlx::core::metal::Device
operator=(const Device &)=deletemlx::core::metal::Device
register_library(const std::string &lib_name, const std::string &lib_path)mlx::core::metal::Device
register_library(const std::string &lib_name)mlx::core::metal::Deviceinline
set_residency_set(const MTL::ResidencySet *residency_set)mlx::core::metal::Device
~Device()mlx::core::metal::Device