docs update

This commit is contained in:
Awni Hannun
2024-08-10 09:24:35 -07:00
committed by CircleCI Docs
parent 6e9288a41c
commit f5dcb1c2b9
724 changed files with 14529 additions and 11046 deletions

View File

@@ -463,14 +463,14 @@ Functions</h2></td></tr>
<tr class="memitem:a847b0a276663d9ddb5cac905ee977f03" id="r_a847b0a276663d9ddb5cac905ee977f03"><td class="memTemplParams" colspan="2">template&lt;typename stride_t &gt; </td></tr>
<tr class="memitem:a847b0a276663d9ddb5cac905ee977f03"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a847b0a276663d9ddb5cac905ee977f03">check_contiguity</a> (const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; stride_t &gt; &amp;strides)</td></tr>
<tr class="separator:a847b0a276663d9ddb5cac905ee977f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63f3c166ea4916faa5d038668cfe16b1" id="r_a63f3c166ea4916faa5d038668cfe16b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63f3c166ea4916faa5d038668cfe16b1">binary_op_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs, const std::string <a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a63f3c166ea4916faa5d038668cfe16b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6437ced86c227e0807352ae6b16da796" id="r_a6437ced86c227e0807352ae6b16da796"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6437ced86c227e0807352ae6b16da796">binary_op_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::string <a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a6437ced86c227e0807352ae6b16da796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afee8898eaceab6dd5e90357f4a0613c4" id="r_afee8898eaceab6dd5e90357f4a0613c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afee8898eaceab6dd5e90357f4a0613c4">binary_op_gpu_inplace</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs, const std::string <a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:afee8898eaceab6dd5e90357f4a0613c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad53410af1488f83d74035e3132fa16af" id="r_ad53410af1488f83d74035e3132fa16af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad53410af1488f83d74035e3132fa16af">binary_op_gpu_inplace</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::string <a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:ad53410af1488f83d74035e3132fa16af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad884f4a36308b5b4f8a5d990d2e086df" id="r_ad884f4a36308b5b4f8a5d990d2e086df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad884f4a36308b5b4f8a5d990d2e086df">binary_op_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs, const std::string &amp;<a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:ad884f4a36308b5b4f8a5d990d2e086df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a094876ea5a2a2445ab64efc8222da202" id="r_a094876ea5a2a2445ab64efc8222da202"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a094876ea5a2a2445ab64efc8222da202">binary_op_gpu</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::string &amp;<a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a094876ea5a2a2445ab64efc8222da202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8616c0b7b0fc118a75400bc86404c367" id="r_a8616c0b7b0fc118a75400bc86404c367"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8616c0b7b0fc118a75400bc86404c367">binary_op_gpu_inplace</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;outputs, const std::string &amp;<a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a8616c0b7b0fc118a75400bc86404c367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e6af6624e322e7ad60a3873a66e18a3" id="r_a7e6af6624e322e7ad60a3873a66e18a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7e6af6624e322e7ad60a3873a66e18a3">binary_op_gpu_inplace</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::string &amp;<a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a7e6af6624e322e7ad60a3873a66e18a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69e30f5d30a6d72ac0ffe4886f24b7ba" id="r_a69e30f5d30a6d72ac0ffe4886f24b7ba"><td class="memTemplParams" colspan="2">template&lt;typename stride_t &gt; </td></tr>
<tr class="memitem:a69e30f5d30a6d72ac0ffe4886f24b7ba"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a69e30f5d30a6d72ac0ffe4886f24b7ba">copy_gpu_inplace</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;in, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::vector&lt; int &gt; &amp;data_shape, const std::vector&lt; stride_t &gt; &amp;i_strides, const std::vector&lt; stride_t &gt; &amp;o_strides, int64_t i_offset, int64_t o_offset, <a class="el" href="#abd84ff6c5245e4e170b2ef5247594337">CopyType</a> ctype, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a69e30f5d30a6d72ac0ffe4886f24b7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -516,6 +516,8 @@ Functions</h2></td></tr>
<tr class="separator:ab5f60614e965144b451930fdf935e08d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce79d220672f5f3c65cc31d145ca9c4" id="r_adce79d220672f5f3c65cc31d145ca9c4"><td class="memItemLeft" align="right" valign="top">MTL::ComputePipelineState *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adce79d220672f5f3c65cc31d145ca9c4">get_steel_conv_kernel</a> (<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">metal::Device</a> &amp;d, const std::string &amp;kernel_name, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, int bm, int bn, int bk, int wm, int wn, int n_channel_specialization, bool small_filter)</td></tr>
<tr class="separator:adce79d220672f5f3c65cc31d145ca9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90c24e0d0b99b68fad9deefcf4d3e818" id="r_a90c24e0d0b99b68fad9deefcf4d3e818"><td class="memItemLeft" align="right" valign="top">MTL::ComputePipelineState *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a90c24e0d0b99b68fad9deefcf4d3e818">get_gemv_masked_kernel</a> (<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">metal::Device</a> &amp;d, const std::string &amp;kernel_name, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;mask_out, const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;mask_op, bool transpose_mat, int bm, int bn, int sm, int sn, int tm, int tn, bool contiguous)</td></tr>
<tr class="separator:a90c24e0d0b99b68fad9deefcf4d3e818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abce2b67044ee06a7bbe7a91ec7c8c48d" id="r_abce2b67044ee06a7bbe7a91ec7c8c48d"><td class="memItemLeft" align="right" valign="top">MTL::ComputePipelineState *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abce2b67044ee06a7bbe7a91ec7c8c48d">get_steel_conv_general_kernel</a> (<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">metal::Device</a> &amp;d, const std::string &amp;kernel_name, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, int bm, int bn, int bk, int wm, int wn)</td></tr>
<tr class="separator:abce2b67044ee06a7bbe7a91ec7c8c48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d4cffc3c78067b3d9a62d64f3fb686f" id="r_a1d4cffc3c78067b3d9a62d64f3fb686f"><td class="memItemLeft" align="right" valign="top">MTL::ComputePipelineState *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1d4cffc3c78067b3d9a62d64f3fb686f">get_fft_kernel</a> (<a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">metal::Device</a> &amp;d, const std::string &amp;kernel_name, const std::string &amp;hash_name, const <a class="el" href="namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54">metal::MTLFCList</a> &amp;func_consts, const std::string &amp;template_def)</td></tr>
@@ -549,6 +551,26 @@ Functions</h2></td></tr>
<tr class="separator:aba2b4accc059f30d4dca88db9f7a6e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a668fde2bd280a88f63a68b68a343d375" id="r_a668fde2bd280a88f63a68b68a343d375"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a668fde2bd280a88f63a68b68a343d375">unary_op_gpu_inplace</a> (const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;inputs, <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;out, const std::string <a class="el" href="common_2binary_8h.html#a70228731d29946574b238d21fb4b360c">op</a>, const <a class="el" href="structmlx_1_1core_1_1_stream.html">Stream</a> &amp;s)</td></tr>
<tr class="separator:a668fde2bd280a88f63a68b68a343d375"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62340bbaa8b216539688a60adcb568bf" id="r_a62340bbaa8b216539688a60adcb568bf"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a62340bbaa8b216539688a60adcb568bf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a62340bbaa8b216539688a60adcb568bf">set_vector_bytes</a> (<a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;enc, const std::vector&lt; T &gt; &amp;vec, size_t nelems, int idx)</td></tr>
<tr class="separator:a62340bbaa8b216539688a60adcb568bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae309cb543dfb0239cfccc53a8ad0408e" id="r_ae309cb543dfb0239cfccc53a8ad0408e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae309cb543dfb0239cfccc53a8ad0408e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ae309cb543dfb0239cfccc53a8ad0408e">set_vector_bytes</a> (<a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;enc, const std::vector&lt; T &gt; &amp;vec, int idx)</td></tr>
<tr class="separator:ae309cb543dfb0239cfccc53a8ad0408e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1fdfdaa5644394362e6baba30701bae" id="r_af1fdfdaa5644394362e6baba30701bae"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af1fdfdaa5644394362e6baba30701bae">type_to_name</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a)</td></tr>
<tr class="separator:af1fdfdaa5644394362e6baba30701bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b3f872f6046bdd4d429ee1f1c31cd40" id="r_a7b3f872f6046bdd4d429ee1f1c31cd40"><td class="memItemLeft" align="right" valign="top">MTL::Size&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b3f872f6046bdd4d429ee1f1c31cd40">get_block_dims</a> (int dim0, int dim1, int dim2)</td></tr>
<tr class="separator:a7b3f872f6046bdd4d429ee1f1c31cd40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc169474a51a1f4f761d5752819bd7c" id="r_a8dc169474a51a1f4f761d5752819bd7c"><td class="memItemLeft" align="right" valign="top">MTL::Size&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8dc169474a51a1f4f761d5752819bd7c">get_2d_grid_dims</a> (const std::vector&lt; int &gt; &amp;shape, const std::vector&lt; size_t &gt; &amp;strides)</td></tr>
<tr class="separator:a8dc169474a51a1f4f761d5752819bd7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed148d95e7b5221f1312473deded0d27" id="r_aed148d95e7b5221f1312473deded0d27"><td class="memItemLeft" align="right" valign="top">NS::String *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aed148d95e7b5221f1312473deded0d27">make_string</a> (std::ostringstream &amp;os)</td></tr>
<tr class="separator:aed148d95e7b5221f1312473deded0d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79817d2432e782e596c9c49a08b93be2" id="r_a79817d2432e782e596c9c49a08b93be2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a79817d2432e782e596c9c49a08b93be2">debug_set_stream_queue_label</a> (MTL::CommandQueue *queue, int index)</td></tr>
<tr class="separator:a79817d2432e782e596c9c49a08b93be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a489e45b3a5cd8b46e8ea56b9132eb230" id="r_a489e45b3a5cd8b46e8ea56b9132eb230"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a489e45b3a5cd8b46e8ea56b9132eb230">debug_set_primitive_buffer_label</a> (MTL::CommandBuffer *command_buffer, <a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;primitive)</td></tr>
<tr class="separator:a489e45b3a5cd8b46e8ea56b9132eb230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4be35b310a252edd80d9cf04f094a60" id="r_ad4be35b310a252edd80d9cf04f094a60"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad4be35b310a252edd80d9cf04f094a60">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">&#160;</td></tr>
<tr class="memitem:a5f5fea955057bb3842b271b037909e66" id="r_a5f5fea955057bb3842b271b037909e66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5f5fea955057bb3842b271b037909e66">disable_compile</a> ()</td></tr>
<tr class="memdesc:a5f5fea955057bb3842b271b037909e66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Globally disable compilation. <br /></td></tr>
<tr class="separator:a5f5fea955057bb3842b271b037909e66"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -580,10 +602,6 @@ Functions</h2></td></tr>
<tr class="separator:add4794cc0ffe5d717fc146084a235d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad527b86818823db040195785efd7d724" id="r_ad527b86818823db040195785efd7d724"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1_dtype.html#adb1ea8b45a0c53e04a0e73b168702715">Dtype::Kind</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad527b86818823db040195785efd7d724">kindof</a> (const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;t)</td></tr>
<tr class="separator:ad527b86818823db040195785efd7d724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80509820694d2f74f0d262d13a90774b" id="r_a80509820694d2f74f0d262d13a90774b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a80509820694d2f74f0d262d13a90774b">dtype_to_array_protocol</a> (const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;t)</td></tr>
<tr class="separator:a80509820694d2f74f0d262d13a90774b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14e0dfe96b41a04be91553799eb07594" id="r_a14e0dfe96b41a04be91553799eb07594"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a14e0dfe96b41a04be91553799eb07594">dtype_from_array_protocol</a> (std::string_view t)</td></tr>
<tr class="separator:a14e0dfe96b41a04be91553799eb07594"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab14ec41f17675691c1fdebb8990b6695" id="r_ab14ec41f17675691c1fdebb8990b6695"><td class="memItemLeft" align="right" valign="top">std::pair&lt; std::vector&lt; std::vector&lt; int &gt; &gt;, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab14ec41f17675691c1fdebb8990b6695">einsum_path</a> (const std::string &amp;subscripts, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;operands)</td></tr>
<tr class="separator:ab14ec41f17675691c1fdebb8990b6695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a9b98c65578dd3720b3b375c1471e58" id="r_a2a9b98c65578dd3720b3b375c1471e58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2a9b98c65578dd3720b3b375c1471e58">einsum</a> (const std::string &amp;subscripts, const std::vector&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;operands, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
@@ -790,16 +808,16 @@ Functions</h2></td></tr>
<tr class="memitem:ga24067d10a842db2c9d509ea48135a2c3" id="r_ga24067d10a842db2c9d509ea48135a2c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga24067d10a842db2c9d509ea48135a2c3">moveaxis</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int source, int destination, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga24067d10a842db2c9d509ea48135a2c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an axis of an array. <br /></td></tr>
<tr class="separator:ga24067d10a842db2c9d509ea48135a2c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fd04d6472ae7cdb94a174edfe338ea3" id="r_ga4fd04d6472ae7cdb94a174edfe338ea3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga4fd04d6472ae7cdb94a174edfe338ea3">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, const std::vector&lt; int &gt; &amp;low_pad_size, const std::vector&lt; int &gt; &amp;high_pad_size, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga4fd04d6472ae7cdb94a174edfe338ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value. <br /></td></tr>
<tr class="separator:ga4fd04d6472ae7cdb94a174edfe338ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca4e00d5e4ed9e9f29d56a17f19c2e31" id="r_gaca4e00d5e4ed9e9f29d56a17f19c2e31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#gaca4e00d5e4ed9e9f29d56a17f19c2e31">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:gaca4e00d5e4ed9e9f29d56a17f19c2e31"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value along all axes. <br /></td></tr>
<tr class="separator:gaca4e00d5e4ed9e9f29d56a17f19c2e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga608164c4f5b4ac2fba374219285d90bc" id="r_ga608164c4f5b4ac2fba374219285d90bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga608164c4f5b4ac2fba374219285d90bc">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::pair&lt; int, int &gt; &amp;pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga608164c4f5b4ac2fba374219285d90bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e57e26c4d7f3d18802c164656cf915c" id="r_ga2e57e26c4d7f3d18802c164656cf915c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga2e57e26c4d7f3d18802c164656cf915c">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga2e57e26c4d7f3d18802c164656cf915c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81c2f138ea81d78affd42e9a646cacbc" id="r_ga81c2f138ea81d78affd42e9a646cacbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga81c2f138ea81d78affd42e9a646cacbc">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; int &gt; &amp;axes, const std::vector&lt; int &gt; &amp;low_pad_size, const std::vector&lt; int &gt; &amp;high_pad_size, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string mode=&quot;constant&quot;, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga81c2f138ea81d78affd42e9a646cacbc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value. <br /></td></tr>
<tr class="separator:ga81c2f138ea81d78affd42e9a646cacbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8495c9902b0a67f288918cb528d5abeb" id="r_ga8495c9902b0a67f288918cb528d5abeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga8495c9902b0a67f288918cb528d5abeb">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string mode=&quot;constant&quot;, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga8495c9902b0a67f288918cb528d5abeb"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmlx_1_1core_1_1_pad.html">Pad</a> an array with a constant value along all axes. <br /></td></tr>
<tr class="separator:ga8495c9902b0a67f288918cb528d5abeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaae2f9637b0b3e2b4c6c0517e285935" id="r_gaeaae2f9637b0b3e2b4c6c0517e285935"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#gaeaae2f9637b0b3e2b4c6c0517e285935">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, const std::pair&lt; int, int &gt; &amp;pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string mode=&quot;constant&quot;, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:gaeaae2f9637b0b3e2b4c6c0517e285935"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b8684361f57cbfd5e6eedf82a62ded0" id="r_ga5b8684361f57cbfd5e6eedf82a62ded0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga5b8684361f57cbfd5e6eedf82a62ded0">pad</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, int pad_width, const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;pad_value=<a class="el" href="classmlx_1_1core_1_1array.html">array</a>(0), const std::string mode=&quot;constant&quot;, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="separator:ga5b8684361f57cbfd5e6eedf82a62ded0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68da0176fefbe0c0096783c6fd926c6a" id="r_ga68da0176fefbe0c0096783c6fd926c6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmlx_1_1core_1_1array.html">array</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ops.html#ga68da0176fefbe0c0096783c6fd926c6a">transpose</a> (const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;a, <a class="el" href="#a95fc1013cc48fbfee0c54310711a5e58">StreamOrDevice</a> s={})</td></tr>
<tr class="memdesc:ga68da0176fefbe0c0096783c6fd926c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Permutes the dimensions in reverse order. <br /></td></tr>
<tr class="separator:ga68da0176fefbe0c0096783c6fd926c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -2209,8 +2227,6 @@ Functions</h2></td></tr>
<tr class="memitem:a8b5f1435b7628a094a38b62e403e1540"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a8b5f1435b7628a094a38b62e403e1540">check_shape_dim</a> (const T dim)</td></tr>
<tr class="memdesc:a8b5f1435b7628a094a38b62e403e1540"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the shape dimension if it's within allowed range. <br /></td></tr>
<tr class="separator:a8b5f1435b7628a094a38b62e403e1540"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a625ed440df3fa57318017c1f2c589efe" id="r_a625ed440df3fa57318017c1f2c589efe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a625ed440df3fa57318017c1f2c589efe">is_big_endian</a> ()</td></tr>
<tr class="separator:a625ed440df3fa57318017c1f2c589efe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0181b5d72bf3d34448dabc70f7ff858d" id="r_a0181b5d72bf3d34448dabc70f7ff858d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0181b5d72bf3d34448dabc70f7ff858d">normalize_axis</a> (int axis, int ndim)</td></tr>
<tr class="memdesc:a0181b5d72bf3d34448dabc70f7ff858d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the axis normalized to be in the range [0, ndim). <br /></td></tr>
<tr class="separator:a0181b5d72bf3d34448dabc70f7ff858d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -2652,8 +2668,8 @@ template&lt;typename... T&gt; </div>
</div>
</div>
<a id="a6437ced86c227e0807352ae6b16da796" name="a6437ced86c227e0807352ae6b16da796"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6437ced86c227e0807352ae6b16da796">&#9670;&#160;</a></span>binary_op_gpu() <span class="overload">[1/2]</span></h2>
<a id="a094876ea5a2a2445ab64efc8222da202" name="a094876ea5a2a2445ab64efc8222da202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a094876ea5a2a2445ab64efc8222da202">&#9670;&#160;</a></span>binary_op_gpu() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2671,7 +2687,7 @@ template&lt;typename... T&gt; </div>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -2683,8 +2699,8 @@ template&lt;typename... T&gt; </div>
</div>
</div>
<a id="a63f3c166ea4916faa5d038668cfe16b1" name="a63f3c166ea4916faa5d038668cfe16b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63f3c166ea4916faa5d038668cfe16b1">&#9670;&#160;</a></span>binary_op_gpu() <span class="overload">[2/2]</span></h2>
<a id="ad884f4a36308b5b4f8a5d990d2e086df" name="ad884f4a36308b5b4f8a5d990d2e086df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad884f4a36308b5b4f8a5d990d2e086df">&#9670;&#160;</a></span>binary_op_gpu() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2702,7 +2718,7 @@ template&lt;typename... T&gt; </div>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -2714,8 +2730,8 @@ template&lt;typename... T&gt; </div>
</div>
</div>
<a id="ad53410af1488f83d74035e3132fa16af" name="ad53410af1488f83d74035e3132fa16af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad53410af1488f83d74035e3132fa16af">&#9670;&#160;</a></span>binary_op_gpu_inplace() <span class="overload">[1/2]</span></h2>
<a id="a7e6af6624e322e7ad60a3873a66e18a3" name="a7e6af6624e322e7ad60a3873a66e18a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e6af6624e322e7ad60a3873a66e18a3">&#9670;&#160;</a></span>binary_op_gpu_inplace() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2733,7 +2749,7 @@ template&lt;typename... T&gt; </div>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -2745,8 +2761,8 @@ template&lt;typename... T&gt; </div>
</div>
</div>
<a id="afee8898eaceab6dd5e90357f4a0613c4" name="afee8898eaceab6dd5e90357f4a0613c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afee8898eaceab6dd5e90357f4a0613c4">&#9670;&#160;</a></span>binary_op_gpu_inplace() <span class="overload">[2/2]</span></h2>
<a id="a8616c0b7b0fc118a75400bc86404c367" name="a8616c0b7b0fc118a75400bc86404c367"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8616c0b7b0fc118a75400bc86404c367">&#9670;&#160;</a></span>binary_op_gpu_inplace() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -2764,7 +2780,7 @@ template&lt;typename... T&gt; </div>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -3346,6 +3362,64 @@ template&lt;typename stride_t &gt; </div>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a489e45b3a5cd8b46e8ea56b9132eb230" name="a489e45b3a5cd8b46e8ea56b9132eb230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a489e45b3a5cd8b46e8ea56b9132eb230">&#9670;&#160;</a></span>debug_set_primitive_buffer_label()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::debug_set_primitive_buffer_label </td>
<td>(</td>
<td class="paramtype">MTL::CommandBuffer *</td> <td class="paramname"><span class="paramname"><em>command_buffer</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> &amp;</td> <td class="paramname"><span class="paramname"><em>primitive</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a79817d2432e782e596c9c49a08b93be2" name="a79817d2432e782e596c9c49a08b93be2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79817d2432e782e596c9c49a08b93be2">&#9670;&#160;</a></span>debug_set_stream_queue_label()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::debug_set_stream_queue_label </td>
<td>(</td>
<td class="paramtype">MTL::CommandQueue *</td> <td class="paramname"><span class="paramname"><em>queue</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3a8fe7ba84714dbb5fdc81e93a07abc8" name="a3a8fe7ba84714dbb5fdc81e93a07abc8"></a>
@@ -3427,40 +3501,6 @@ template&lt;typename stride_t &gt; </div>
<p>Globally disable compilation. </p>
<p>Setting the environment variable <code>MLX_DISABLE_COMPILE</code> can also be used to disable compilation. </p>
</div>
</div>
<a id="a14e0dfe96b41a04be91553799eb07594" name="a14e0dfe96b41a04be91553799eb07594"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14e0dfe96b41a04be91553799eb07594">&#9670;&#160;</a></span>dtype_from_array_protocol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> mlx::core::dtype_from_array_protocol </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a80509820694d2f74f0d262d13a90774b" name="a80509820694d2f74f0d262d13a90774b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80509820694d2f74f0d262d13a90774b">&#9670;&#160;</a></span>dtype_to_array_protocol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string mlx::core::dtype_to_array_protocol </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structmlx_1_1core_1_1_dtype.html">Dtype</a> &amp;</td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2a9b98c65578dd3720b3b375c1471e58" name="a2a9b98c65578dd3720b3b375c1471e58"></a>
@@ -3673,6 +3713,27 @@ template&lt;typename... Arrays, typename = enable_for_arrays_t&lt;Arrays...&gt;
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a8dc169474a51a1f4f761d5752819bd7c" name="a8dc169474a51a1f4f761d5752819bd7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dc169474a51a1f4f761d5752819bd7c">&#9670;&#160;</a></span>get_2d_grid_dims()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MTL::Size mlx::core::get_2d_grid_dims </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>shape</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; size_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>strides</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a76f614e9956a6ca05a9be4db5a483446" name="a76f614e9956a6ca05a9be4db5a483446"></a>
@@ -3771,6 +3832,32 @@ template&lt;typename... Arrays, typename = enable_for_arrays_t&lt;Arrays...&gt;
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7b3f872f6046bdd4d429ee1f1c31cd40" name="a7b3f872f6046bdd4d429ee1f1c31cd40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b3f872f6046bdd4d429ee1f1c31cd40">&#9670;&#160;</a></span>get_block_dims()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MTL::Size mlx::core::get_block_dims </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dim0</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dim1</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dim2</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a05a220cff45f12439fde775983c6df78" name="a05a220cff45f12439fde775983c6df78"></a>
@@ -3838,6 +3925,82 @@ template&lt;typename... Arrays, typename = enable_for_arrays_t&lt;Arrays...&gt;
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a90c24e0d0b99b68fad9deefcf4d3e818" name="a90c24e0d0b99b68fad9deefcf4d3e818"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90c24e0d0b99b68fad9deefcf4d3e818">&#9670;&#160;</a></span>get_gemv_masked_kernel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MTL::ComputePipelineState * mlx::core::get_gemv_masked_kernel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1metal_1_1_device.html">metal::Device</a> &amp;</td> <td class="paramname"><span class="paramname"><em>d</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>kernel_name</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>out</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>mask_out</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::optional&lt; <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>mask_op</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>transpose_mat</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bm</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>bn</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>sm</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>sn</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>tm</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>tn</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>contiguous</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afb57825bb763050cc9a9d194aa41ac36" name="afb57825bb763050cc9a9d194aa41ac36"></a>
@@ -3879,6 +4042,23 @@ template&lt;typename... Arrays, typename = enable_for_arrays_t&lt;Arrays...&gt;
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad4be35b310a252edd80d9cf04f094a60" name="ad4be35b310a252edd80d9cf04f094a60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4be35b310a252edd80d9cf04f094a60">&#9670;&#160;</a></span>get_primitive_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string mlx::core::get_primitive_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> *</td> <td class="paramname"><span class="paramname"><em>primitive</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa3faeae5378bfaafe3ce3432a051e43e" name="aa3faeae5378bfaafe3ce3432a051e43e"></a>
@@ -4711,31 +4891,6 @@ template&lt;typename... Args&gt; </div>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a625ed440df3fa57318017c1f2c589efe" name="a625ed440df3fa57318017c1f2c589efe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a625ed440df3fa57318017c1f2c589efe">&#9670;&#160;</a></span>is_big_endian()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mlx::core::is_big_endian </td>
<td>(</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adacbc4526e8964b267a8ec3eb1bc1a32" name="adacbc4526e8964b267a8ec3eb1bc1a32"></a>
@@ -5118,6 +5273,31 @@ template&lt;typename stride_t &gt; </div>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aed148d95e7b5221f1312473deded0d27" name="aed148d95e7b5221f1312473deded0d27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed148d95e7b5221f1312473deded0d27">&#9670;&#160;</a></span>make_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NS::String * mlx::core::make_string </td>
<td>(</td>
<td class="paramtype">std::ostringstream &amp;</td> <td class="paramname"><span class="paramname"><em>os</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a9a9254ce9975ec247a2718bc02d6f201" name="a9a9254ce9975ec247a2718bc02d6f201"></a>
@@ -16528,6 +16708,83 @@ template&lt;typename T , typename U , typename OpS , typename OpC , typename Op
<p>Make the stream the default for its device. </p>
</div>
</div>
<a id="ae309cb543dfb0239cfccc53a8ad0408e" name="ae309cb543dfb0239cfccc53a8ad0408e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae309cb543dfb0239cfccc53a8ad0408e">&#9670;&#160;</a></span>set_vector_bytes() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::set_vector_bytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>enc</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>vec</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>idx</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a62340bbaa8b216539688a60adcb568bf" name="a62340bbaa8b216539688a60adcb568bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62340bbaa8b216539688a60adcb568bf">&#9670;&#160;</a></span>set_vector_bytes() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void mlx::core::set_vector_bytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structmlx_1_1core_1_1metal_1_1_command_encoder.html">CommandEncoder</a> &amp;</td> <td class="paramname"><span class="paramname"><em>enc</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>vec</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>nelems</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>idx</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a44c3ea6db6553c3f6552b9ba64a69494" name="a44c3ea6db6553c3f6552b9ba64a69494"></a>
@@ -17004,6 +17261,23 @@ template&lt;typename T , typename U , typename OpS , typename OpC , typename Op
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af1fdfdaa5644394362e6baba30701bae" name="af1fdfdaa5644394362e6baba30701bae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1fdfdaa5644394362e6baba30701bae">&#9670;&#160;</a></span>type_to_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string mlx::core::type_to_name </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classmlx_1_1core_1_1array.html">array</a> &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aba2b4accc059f30d4dca88db9f7a6e13" name="aba2b4accc059f30d4dca88db9f7a6e13"></a>