|
399 | 399 | <article role="main">
|
400 | 400 | <section id="module-tilelang.language.allocate">
|
401 | 401 | <span id="tilelang-language-allocate-module"></span><h1>tilelang.language.allocate module<a class="headerlink" href="#module-tilelang.language.allocate" title="Permalink to this heading">#</a></h1>
|
402 |
| -<p>The language interface for tl programs.</p> |
| 402 | +<p>Memory allocation utilities for Tile-AI programs.</p> |
| 403 | +<p>This module provides a set of functions for allocating different types of memory buffers |
| 404 | +in Tile-AI programs. It wraps TVM’s buffer allocation functionality with convenient |
| 405 | +interfaces for different memory scopes.</p> |
| 406 | +<dl class="simple"> |
| 407 | +<dt>Available allocation functions:</dt><dd><ul class="simple"> |
| 408 | +<li><p>alloc_shared: Allocates shared memory buffers for inter-thread communication</p></li> |
| 409 | +<li><p>alloc_local: Allocates local memory buffers for thread-private storage</p></li> |
| 410 | +<li><p>alloc_fragment: Allocates fragment memory buffers for specialized operations</p></li> |
| 411 | +<li><p>alloc_var: Allocates single-element variable buffers</p></li> |
| 412 | +</ul> |
| 413 | +</dd> |
| 414 | +</dl> |
| 415 | +<p>Each function takes shape and dtype parameters and returns a TVM buffer object |
| 416 | +with the appropriate memory scope.</p> |
403 | 417 | <dl class="py function">
|
404 | 418 | <dt class="sig sig-object py" id="tilelang.language.allocate.alloc_fragment">
|
405 | 419 | <span class="sig-prename descclassname"><span class="pre">tilelang.language.allocate.</span></span><span class="sig-name descname"><span class="pre">alloc_fragment</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shape</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dtype</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'local.fragment'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.allocate.alloc_fragment" title="Permalink to this definition">#</a></dt>
|
406 |
| -<dd></dd></dl> |
| 420 | +<dd><p>Allocate a fragment memory buffer for specialized operations.</p> |
| 421 | +<dl class="field-list simple"> |
| 422 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 423 | +<dd class="field-odd"><ul class="simple"> |
| 424 | +<li><p><strong>shape</strong> (<em>tuple</em>) – The shape of the buffer to allocate</p></li> |
| 425 | +<li><p><strong>dtype</strong> (<em>str</em>) – The data type of the buffer (e.g., ‘float32’, ‘int32’)</p></li> |
| 426 | +<li><p><strong>scope</strong> (<em>str</em><em>, </em><em>optional</em>) – The memory scope. Defaults to “local.fragment”</p></li> |
| 427 | +</ul> |
| 428 | +</dd> |
| 429 | +<dt class="field-even">Returns<span class="colon">:</span></dt> |
| 430 | +<dd class="field-even"><p>A TVM buffer object allocated in fragment memory</p> |
| 431 | +</dd> |
| 432 | +<dt class="field-odd">Return type<span class="colon">:</span></dt> |
| 433 | +<dd class="field-odd"><p>T.Buffer</p> |
| 434 | +</dd> |
| 435 | +</dl> |
| 436 | +</dd></dl> |
407 | 437 |
|
408 | 438 | <dl class="py function">
|
409 | 439 | <dt class="sig sig-object py" id="tilelang.language.allocate.alloc_local">
|
410 | 440 | <span class="sig-prename descclassname"><span class="pre">tilelang.language.allocate.</span></span><span class="sig-name descname"><span class="pre">alloc_local</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shape</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dtype</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'local'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.allocate.alloc_local" title="Permalink to this definition">#</a></dt>
|
411 |
| -<dd></dd></dl> |
| 441 | +<dd><p>Allocate a local memory buffer for thread-private storage.</p> |
| 442 | +<dl class="field-list simple"> |
| 443 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 444 | +<dd class="field-odd"><ul class="simple"> |
| 445 | +<li><p><strong>shape</strong> (<em>tuple</em>) – The shape of the buffer to allocate</p></li> |
| 446 | +<li><p><strong>dtype</strong> (<em>str</em>) – The data type of the buffer (e.g., ‘float32’, ‘int32’)</p></li> |
| 447 | +<li><p><strong>scope</strong> (<em>str</em><em>, </em><em>optional</em>) – The memory scope. Defaults to “local”</p></li> |
| 448 | +</ul> |
| 449 | +</dd> |
| 450 | +<dt class="field-even">Returns<span class="colon">:</span></dt> |
| 451 | +<dd class="field-even"><p>A TVM buffer object allocated in local memory</p> |
| 452 | +</dd> |
| 453 | +<dt class="field-odd">Return type<span class="colon">:</span></dt> |
| 454 | +<dd class="field-odd"><p>T.Buffer</p> |
| 455 | +</dd> |
| 456 | +</dl> |
| 457 | +</dd></dl> |
412 | 458 |
|
413 | 459 | <dl class="py function">
|
414 | 460 | <dt class="sig sig-object py" id="tilelang.language.allocate.alloc_shared">
|
415 | 461 | <span class="sig-prename descclassname"><span class="pre">tilelang.language.allocate.</span></span><span class="sig-name descname"><span class="pre">alloc_shared</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">shape</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dtype</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'shared.dyn'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.allocate.alloc_shared" title="Permalink to this definition">#</a></dt>
|
416 |
| -<dd></dd></dl> |
| 462 | +<dd><p>Allocate a shared memory buffer for inter-thread communication.</p> |
| 463 | +<dl class="field-list simple"> |
| 464 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 465 | +<dd class="field-odd"><ul class="simple"> |
| 466 | +<li><p><strong>shape</strong> (<em>tuple</em>) – The shape of the buffer to allocate</p></li> |
| 467 | +<li><p><strong>dtype</strong> (<em>str</em>) – The data type of the buffer (e.g., ‘float32’, ‘int32’)</p></li> |
| 468 | +<li><p><strong>scope</strong> (<em>str</em><em>, </em><em>optional</em>) – The memory scope. Defaults to “shared.dyn”</p></li> |
| 469 | +</ul> |
| 470 | +</dd> |
| 471 | +<dt class="field-even">Returns<span class="colon">:</span></dt> |
| 472 | +<dd class="field-even"><p>A TVM buffer object allocated in shared memory</p> |
| 473 | +</dd> |
| 474 | +<dt class="field-odd">Return type<span class="colon">:</span></dt> |
| 475 | +<dd class="field-odd"><p>T.Buffer</p> |
| 476 | +</dd> |
| 477 | +</dl> |
| 478 | +</dd></dl> |
417 | 479 |
|
418 | 480 | <dl class="py function">
|
419 | 481 | <dt class="sig sig-object py" id="tilelang.language.allocate.alloc_var">
|
420 | 482 | <span class="sig-prename descclassname"><span class="pre">tilelang.language.allocate.</span></span><span class="sig-name descname"><span class="pre">alloc_var</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dtype</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'local.var'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.language.allocate.alloc_var" title="Permalink to this definition">#</a></dt>
|
421 |
| -<dd></dd></dl> |
| 483 | +<dd><p>Allocate a single-element variable buffer.</p> |
| 484 | +<dl class="field-list simple"> |
| 485 | +<dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| 486 | +<dd class="field-odd"><ul class="simple"> |
| 487 | +<li><p><strong>dtype</strong> (<em>str</em>) – The data type of the buffer (e.g., ‘float32’, ‘int32’)</p></li> |
| 488 | +<li><p><strong>scope</strong> (<em>str</em><em>, </em><em>optional</em>) – The memory scope. Defaults to “local.var”</p></li> |
| 489 | +</ul> |
| 490 | +</dd> |
| 491 | +<dt class="field-even">Returns<span class="colon">:</span></dt> |
| 492 | +<dd class="field-even"><p>A TVM buffer object allocated as a single-element variable</p> |
| 493 | +</dd> |
| 494 | +<dt class="field-odd">Return type<span class="colon">:</span></dt> |
| 495 | +<dd class="field-odd"><p>T.Buffer</p> |
| 496 | +</dd> |
| 497 | +</dl> |
| 498 | +</dd></dl> |
422 | 499 |
|
423 | 500 | </section>
|
424 | 501 |
|
|
0 commit comments