mirror of
https://github.com/ml-explore/mlx.git
synced 2025-09-18 18:28:12 +08:00
docs update
This commit is contained in:

committed by
CircleCI Docs

parent
d8f7b8cda6
commit
27e07888b0
64
docs/build/html/fast__primitives_8h_source.html
vendored
64
docs/build/html/fast__primitives_8h_source.html
vendored
@@ -375,7 +375,58 @@ $(function() { codefold.init(0); });
|
||||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
|
||||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span>} <span class="comment">// namespace mlx::core::fast</span></div>
|
||||
<div class="foldopen" id="foldopen00245" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html"> 245</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html">CustomKernelShapeInfo</a> {</div>
|
||||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a"> 246</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a">shape</a> = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2"> 247</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2">strides</a> = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051"> 248</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051">ndim</a> = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
|
||||
<div class="foldopen" id="foldopen00251" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html"> 251</a></span><span class="keyword">class </span><a class="code hl_class" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html">CustomKernel</a> : <span class="keyword">public</span> <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a> {</div>
|
||||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">public</span>:</div>
|
||||
<div class="foldopen" id="foldopen00253" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a95096f69c0849707cf61904513fb82dc"> 253</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a95096f69c0849707cf61904513fb82dc">CustomKernel</a>(</div>
|
||||
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <a class="code hl_struct" href="structmlx_1_1core_1_1_stream.html">Stream</a> <a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>,</div>
|
||||
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> std::string name,</div>
|
||||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> std::string source,</div>
|
||||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> std::tuple<int, int, int> grid,</div>
|
||||
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> std::tuple<int, int, int> threadgroup,</div>
|
||||
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> std::vector<CustomKernelShapeInfo> shape_infos,</div>
|
||||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordtype">bool</span> ensure_row_contiguous)</div>
|
||||
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> : <a class="code hl_class" href="classmlx_1_1core_1_1_primitive.html">Primitive</a>(<a class="code hl_function" href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">stream</a>),</div>
|
||||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> source_(source),</div>
|
||||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> name_(name),</div>
|
||||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> grid_(grid),</div>
|
||||
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> threadgroup_(threadgroup),</div>
|
||||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> shape_infos_(shape_infos),</div>
|
||||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> ensure_row_contiguous_(ensure_row_contiguous) {}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> </div>
|
||||
<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad"> 269</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad">eval_cpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)<span class="keyword"></span></div>
|
||||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="keyword"> override </span>{</div>
|
||||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">"Custom Metal kernels only run on GPU."</span>);</div>
|
||||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
|
||||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db"> 274</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db">eval_gpu</a>(<span class="keyword">const</span> std::vector<array>& inputs, std::vector<array>& outputs)</div>
|
||||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">override</span>;</div>
|
||||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
|
||||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"><a class="line" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a116ecf31c8672c94e5ea06c1d43e9534"> 277</a></span> <a class="code hl_function" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a116ecf31c8672c94e5ea06c1d43e9534">DEFINE_PRINT</a>(<a class="code hl_class" href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html">CustomKernel</a>);</div>
|
||||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
|
||||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> std::string source_;</div>
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> std::string name_;</div>
|
||||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> std::tuple<int, int, int> grid_;</div>
|
||||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> std::tuple<int, int, int> threadgroup_;</div>
|
||||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> std::vector<CustomKernelShapeInfo> shape_infos_;</div>
|
||||
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordtype">bool</span> ensure_row_contiguous_;</div>
|
||||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
|
||||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span>} <span class="comment">// namespace mlx::core::fast</span></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html">mlx::core::Primitive</a></div><div class="ttdef"><b>Definition</b> primitives.h:48</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a46e6257397a662528f9f831842ac456a"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a">mlx::core::Primitive::stream</a></div><div class="ttdeci">const Stream & stream()</div><div class="ttdoc">The stream the primitive will run on.</div><div class="ttdef"><b>Definition</b> primitives.h:58</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1_primitive_html_a6140a502af4c2bbbc776ab26e9afebcd"><div class="ttname"><a href="classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd">mlx::core::Primitive::is_equivalent</a></div><div class="ttdeci">virtual bool is_equivalent(const Primitive &other) const</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div><div class="ttdef"><b>Definition</b> primitives.h:107</div></div>
|
||||
@@ -390,6 +441,11 @@ $(function() { codefold.init(0); });
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_html_a74be4bcd0382f7f6400bf73fd5569c91"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom.html#a74be4bcd0382f7f6400bf73fd5569c91">mlx::core::fast::Custom::vjp</a></div><div class="ttdeci">virtual std::vector< array > vjp(const std::vector< array > &primals, const std::vector< array > &cotangents, const std::vector< int > &argnums, const std::vector< array > &outputs) override</div><div class="ttdoc">The vector-Jacobian product.</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_html_a7f4c3a4c48c6807faa36fb31e39dad8d"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d">mlx::core::fast::Custom::vmap</a></div><div class="ttdeci">virtual std::pair< std::vector< array >, std::vector< int > > vmap(const std::vector< array > &inputs, const std::vector< int > &axes) override</div><div class="ttdoc">The primitive must know how to vectorize itself across the given axes.</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_html_ac77b28702654df8e7d882a49357a9584"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom.html#ac77b28702654df8e7d882a49357a9584">mlx::core::fast::Custom::jvp</a></div><div class="ttdeci">virtual std::vector< array > jvp(const std::vector< array > &primals, const std::vector< array > &tangents, const std::vector< int > &argnums) override</div><div class="ttdoc">The Jacobian-vector product.</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_kernel_html"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html">mlx::core::fast::CustomKernel</a></div><div class="ttdef"><b>Definition</b> fast_primitives.h:251</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_kernel_html_a116ecf31c8672c94e5ea06c1d43e9534"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a116ecf31c8672c94e5ea06c1d43e9534">mlx::core::fast::CustomKernel::DEFINE_PRINT</a></div><div class="ttdeci">DEFINE_PRINT(CustomKernel)</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_kernel_html_a2ed2a16b23053f8195068386a99fd6db"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db">mlx::core::fast::CustomKernel::eval_gpu</a></div><div class="ttdeci">void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_kernel_html_a4ad1b7a9919753c759093f3e21a15bad"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad">mlx::core::fast::CustomKernel::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div><div class="ttdef"><b>Definition</b> fast_primitives.h:269</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_custom_kernel_html_a95096f69c0849707cf61904513fb82dc"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a95096f69c0849707cf61904513fb82dc">mlx::core::fast::CustomKernel::CustomKernel</a></div><div class="ttdeci">CustomKernel(Stream stream, std::string name, std::string source, std::tuple< int, int, int > grid, std::tuple< int, int, int > threadgroup, std::vector< CustomKernelShapeInfo > shape_infos, bool ensure_row_contiguous)</div><div class="ttdef"><b>Definition</b> fast_primitives.h:253</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_layer_norm_html"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_layer_norm.html">mlx::core::fast::LayerNorm</a></div><div class="ttdef"><b>Definition</b> fast_primitives.h:88</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_layer_norm_html_a467fcf02b3ddf1d8b6d476b244ae3568"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a467fcf02b3ddf1d8b6d476b244ae3568">mlx::core::fast::LayerNorm::DEFINE_PRINT</a></div><div class="ttdeci">DEFINE_PRINT(LayerNorm) bool is_equivalent(const Primitive &other) const override</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_layer_norm_html_a5ac38d50e62850589bf51ee313303153"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5ac38d50e62850589bf51ee313303153">mlx::core::fast::LayerNorm::LayerNorm</a></div><div class="ttdeci">LayerNorm(Stream stream, std::function< std::vector< array >(std::vector< array >)> fallback, float eps)</div><div class="ttdef"><b>Definition</b> fast_primitives.h:90</div></div>
|
||||
@@ -426,9 +482,13 @@ $(function() { codefold.init(0); });
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention_html_ae20851e002f7fcb6d4f97817596f6328"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ae20851e002f7fcb6d4f97817596f6328">mlx::core::fast::ScaledDotProductAttention::eval_cpu</a></div><div class="ttdeci">void eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override</div><div class="ttdoc">A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...</div><div class="ttdef"><b>Definition</b> fast_primitives.h:194</div></div>
|
||||
<div class="ttc" id="aclassmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention_html_af08b1294f3f93505a96fdfa85b1edd62"><div class="ttname"><a href="classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#af08b1294f3f93505a96fdfa85b1edd62">mlx::core::fast::ScaledDotProductAttention::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const Primitive &other) const override</div><div class="ttdoc">Equivalence check defaults to false unless overridden by the primitive.</div></div>
|
||||
<div class="ttc" id="agroup__ops_html_gabff758a5c1ce32ad7e8b78aba0164077"><div class="ttname"><a href="group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077">mlx::core::dequantize</a></div><div class="ttdeci">array dequantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})</div><div class="ttdoc">Dequantize a matrix produced by quantize()</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html">mlx::core::fast</a></div><div class="ttdef"><b>Definition</b> fast.h:9</div></div>
|
||||
<div class="ttc" id="anamespacemlx_1_1core_1_1fast_html"><div class="ttname"><a href="namespacemlx_1_1core_1_1fast.html">mlx::core::fast</a></div><div class="ttdef"><b>Definition</b> fast.h:10</div></div>
|
||||
<div class="ttc" id="aprimitives_8h_html"><div class="ttname"><a href="primitives_8h.html">primitives.h</a></div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1_stream_html"><div class="ttname"><a href="structmlx_1_1core_1_1_stream.html">mlx::core::Stream</a></div><div class="ttdef"><b>Definition</b> stream.h:9</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info_html"><div class="ttname"><a href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html">mlx::core::fast::CustomKernelShapeInfo</a></div><div class="ttdef"><b>Definition</b> fast_primitives.h:245</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info_html_a63954de7da62942ec69afcaaa19d46f2"><div class="ttname"><a href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2">mlx::core::fast::CustomKernelShapeInfo::strides</a></div><div class="ttdeci">bool strides</div><div class="ttdef"><b>Definition</b> fast_primitives.h:247</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info_html_a63db720fe0c2abc4b71e22a58a015f8a"><div class="ttname"><a href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a">mlx::core::fast::CustomKernelShapeInfo::shape</a></div><div class="ttdeci">bool shape</div><div class="ttdef"><b>Definition</b> fast_primitives.h:246</div></div>
|
||||
<div class="ttc" id="astructmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info_html_ae605df33f449872e3da9777d97008051"><div class="ttname"><a href="structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#ae605df33f449872e3da9777d97008051">mlx::core::fast::CustomKernelShapeInfo::ndim</a></div><div class="ttdeci">bool ndim</div><div class="ttdef"><b>Definition</b> fast_primitives.h:248</div></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
|
Reference in New Issue
Block a user