|
404 | 404 | <section id="module-tilelang.language.builtin">
|
405 | 405 | <span id="tilelang-language-builtin-module"></span><h1>tilelang.language.builtin module<a class="headerlink" href="#module-tilelang.language.builtin" title="Permalink to this heading">#</a></h1>
|
406 | 406 | <p>The language interface for tl programs.</p>
|
| 407 | +<dl class="py function"> |
| 408 | +<dt class="sig sig-object py" id="tilelang.language.builtin.barrier_arrive"> |
| 409 | +<span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">barrier_arrive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">barrier_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.builtin.barrier_arrive" title="Permalink to this definition">#</a></dt> |
| 410 | +<dd><p>Arrive at a memory barrier.</p> |
| 411 | +<dl class="field-list simple"> |
| 412 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 413 | +<dd class="field-odd"><p><strong>barrier_id</strong> – Optional[int, PrimExpr] |
| 414 | +The memory barrier to arrive at</p> |
| 415 | +</dd> |
| 416 | +</dl> |
| 417 | +</dd></dl> |
| 418 | + |
| 419 | +<dl class="py function"> |
| 420 | +<dt class="sig sig-object py" id="tilelang.language.builtin.barrier_wait"> |
| 421 | +<span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">barrier_wait</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">barrier_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parity</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Var</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.builtin.barrier_wait" title="Permalink to this definition">#</a></dt> |
| 422 | +<dd><p>Wait for a memory barrier to complete.</p> |
| 423 | +<dl class="field-list simple"> |
| 424 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 425 | +<dd class="field-odd"><ul class="simple"> |
| 426 | +<li><p><strong>barrier_id</strong> – Optional[int, PrimExpr] |
| 427 | +The memory barrier to wait on</p></li> |
| 428 | +<li><p><strong>parity</strong> – Optional[int, Var] |
| 429 | +The parity value to wait for</p></li> |
| 430 | +</ul> |
| 431 | +</dd> |
| 432 | +<dt class="field-even">Returns<span class="colon">:</span></dt> |
| 433 | +<dd class="field-even"><p>A handle to the barrier wait operation</p> |
| 434 | +</dd> |
| 435 | +<dt class="field-odd">Return type<span class="colon">:</span></dt> |
| 436 | +<dd class="field-odd"><p>tir.Call</p> |
| 437 | +</dd> |
| 438 | +</dl> |
| 439 | +<p>Current implementation is a sugar syntax for mbarrier_wait_parity, as we only support parity 0 and 1.</p> |
| 440 | +</dd></dl> |
| 441 | + |
407 | 442 | <dl class="py function">
|
408 | 443 | <dt class="sig sig-object py" id="tilelang.language.builtin.create_list_of_mbarrier">
|
409 | 444 | <span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">create_list_of_mbarrier</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Call</span></span></span><a class="headerlink" href="#tilelang.language.builtin.create_list_of_mbarrier" title="Permalink to this definition">#</a></dt>
|
|
604 | 639 | </dl>
|
605 | 640 | </dd></dl>
|
606 | 641 |
|
| 642 | +<dl class="py function"> |
| 643 | +<dt class="sig sig-object py" id="tilelang.language.builtin.shfl_down"> |
| 644 | +<span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">shfl_down</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.builtin.shfl_down" title="Permalink to this definition">#</a></dt> |
| 645 | +<dd><p>Perform a shuffle operation with down offset.</p> |
| 646 | +<dl class="field-list simple"> |
| 647 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 648 | +<dd class="field-odd"><p><strong>value</strong> – Optional[int, PrimExpr] |
| 649 | +The value to shuffle</p> |
| 650 | +</dd> |
| 651 | +</dl> |
| 652 | +</dd></dl> |
| 653 | + |
| 654 | +<dl class="py function"> |
| 655 | +<dt class="sig sig-object py" id="tilelang.language.builtin.shfl_up"> |
| 656 | +<span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">shfl_up</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.builtin.shfl_up" title="Permalink to this definition">#</a></dt> |
| 657 | +<dd><p>Perform a shuffle operation with up offset.</p> |
| 658 | +<dl class="field-list simple"> |
| 659 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 660 | +<dd class="field-odd"><p><strong>value</strong> – Optional[int, PrimExpr] |
| 661 | +The value to shuffle</p> |
| 662 | +</dd> |
| 663 | +</dl> |
| 664 | +</dd></dl> |
| 665 | + |
| 666 | +<dl class="py function"> |
| 667 | +<dt class="sig sig-object py" id="tilelang.language.builtin.shfl_xor"> |
| 668 | +<span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">shfl_xor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">PrimExpr</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Call</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.builtin.shfl_xor" title="Permalink to this definition">#</a></dt> |
| 669 | +<dd><p>Perform a shuffle operation with XOR offset.</p> |
| 670 | +<dl class="field-list simple"> |
| 671 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 672 | +<dd class="field-odd"><ul class="simple"> |
| 673 | +<li><p><strong>value</strong> – Optional[int, PrimExpr] |
| 674 | +The value to shuffle</p></li> |
| 675 | +<li><p><strong>offset</strong> – Optional[int, PrimExpr] |
| 676 | +The offset for the shuffle operation</p></li> |
| 677 | +</ul> |
| 678 | +</dd> |
| 679 | +<dt class="field-even">Returns<span class="colon">:</span></dt> |
| 680 | +<dd class="field-even"><p>A handle to the shuffle operation</p> |
| 681 | +</dd> |
| 682 | +<dt class="field-odd">Return type<span class="colon">:</span></dt> |
| 683 | +<dd class="field-odd"><p>tir.Call</p> |
| 684 | +</dd> |
| 685 | +</dl> |
| 686 | +</dd></dl> |
| 687 | + |
607 | 688 | <dl class="py function">
|
608 | 689 | <dt class="sig sig-object py" id="tilelang.language.builtin.tma_load">
|
609 | 690 | <span class="sig-prename descclassname"><span class="pre">tilelang.language.builtin.</span></span><span class="sig-name descname"><span class="pre">tma_load</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.builtin.tma_load" title="Permalink to this definition">#</a></dt>
|
|
730 | 811 | <div class="toc-tree">
|
731 | 812 | <ul>
|
732 | 813 | <li><a class="reference internal" href="#">tilelang.language.builtin module</a><ul>
|
| 814 | +<li><a class="reference internal" href="#tilelang.language.builtin.barrier_arrive"><code class="docutils literal notranslate"><span class="pre">barrier_arrive()</span></code></a></li> |
| 815 | +<li><a class="reference internal" href="#tilelang.language.builtin.barrier_wait"><code class="docutils literal notranslate"><span class="pre">barrier_wait()</span></code></a></li> |
733 | 816 | <li><a class="reference internal" href="#tilelang.language.builtin.create_list_of_mbarrier"><code class="docutils literal notranslate"><span class="pre">create_list_of_mbarrier()</span></code></a></li>
|
734 | 817 | <li><a class="reference internal" href="#tilelang.language.builtin.create_tma_descriptor"><code class="docutils literal notranslate"><span class="pre">create_tma_descriptor()</span></code></a></li>
|
735 | 818 | <li><a class="reference internal" href="#tilelang.language.builtin.dec_max_nreg"><code class="docutils literal notranslate"><span class="pre">dec_max_nreg()</span></code></a></li>
|
|
741 | 824 | <li><a class="reference internal" href="#tilelang.language.builtin.mbarrier_wait_parity"><code class="docutils literal notranslate"><span class="pre">mbarrier_wait_parity()</span></code></a></li>
|
742 | 825 | <li><a class="reference internal" href="#tilelang.language.builtin.no_set_max_nreg"><code class="docutils literal notranslate"><span class="pre">no_set_max_nreg()</span></code></a></li>
|
743 | 826 | <li><a class="reference internal" href="#tilelang.language.builtin.set_max_nreg"><code class="docutils literal notranslate"><span class="pre">set_max_nreg()</span></code></a></li>
|
| 827 | +<li><a class="reference internal" href="#tilelang.language.builtin.shfl_down"><code class="docutils literal notranslate"><span class="pre">shfl_down()</span></code></a></li> |
| 828 | +<li><a class="reference internal" href="#tilelang.language.builtin.shfl_up"><code class="docutils literal notranslate"><span class="pre">shfl_up()</span></code></a></li> |
| 829 | +<li><a class="reference internal" href="#tilelang.language.builtin.shfl_xor"><code class="docutils literal notranslate"><span class="pre">shfl_xor()</span></code></a></li> |
744 | 830 | <li><a class="reference internal" href="#tilelang.language.builtin.tma_load"><code class="docutils literal notranslate"><span class="pre">tma_load()</span></code></a></li>
|
745 | 831 | <li><a class="reference internal" href="#tilelang.language.builtin.tma_store_arrive"><code class="docutils literal notranslate"><span class="pre">tma_store_arrive()</span></code></a></li>
|
746 | 832 | <li><a class="reference internal" href="#tilelang.language.builtin.tma_store_wait"><code class="docutils literal notranslate"><span class="pre">tma_store_wait()</span></code></a></li>
|
|
0 commit comments