v4.1 release
This commit is contained in:
@@ -297,7 +297,7 @@
|
||||
" assert depth <= 1, f\"Depth of coalesced layout should be <= 1, got {depth}\"\n",
|
||||
"\n",
|
||||
" print(\">>> 3. Checking layout functionality remains the same after the coalesce operation:\")\n",
|
||||
" for i in range(original_size):\n",
|
||||
" for i in cutlass.range_constexpr(original_size):\n",
|
||||
" original_value = layout(i)\n",
|
||||
" coalesced_value = result(i)\n",
|
||||
" print(f\"Index {i}: original {original_value}, coalesced {coalesced_value}\")\n",
|
||||
|
||||
@@ -60,48 +60,7 @@
|
||||
"@cute.jit\n",
|
||||
"def foo(a: cutlass.Int32): # annotate `a` as 32-bit integer passed to jit function via ABI\n",
|
||||
" ...\n",
|
||||
"```\n",
|
||||
"To differentiate between compile-time and runtime values, CuTe DSL introduces primitive types that \n",
|
||||
"represent dynamic values in JIT-compiled code.\n",
|
||||
"\n",
|
||||
"CuTe DSL provides a comprehensive set of primitive numeric types for representing dynamic values at \n",
|
||||
"runtime. These types are formally defined within the CuTe DSL typing system:\n",
|
||||
"\n",
|
||||
"### Integer Types\n",
|
||||
"- `Int8` - 8-bit signed integer\n",
|
||||
"- `Int16` - 16-bit signed integer \n",
|
||||
"- `Int32` - 32-bit signed integer\n",
|
||||
"- `Int64` - 64-bit signed integer\n",
|
||||
"- `Int128` - 128-bit signed integer\n",
|
||||
"- `Uint8` - 8-bit unsigned integer\n",
|
||||
"- `Uint16` - 16-bit unsigned integer\n",
|
||||
"- `Uint32` - 32-bit unsigned integer\n",
|
||||
"- `Uint64` - 64-bit unsigned integer\n",
|
||||
"- `Uint128` - 128-bit unsigned integer\n",
|
||||
"\n",
|
||||
"### Floating Point Types\n",
|
||||
"- `Float16` - 16-bit floating point\n",
|
||||
"- `Float32` - 32-bit floating point \n",
|
||||
"- `Float64` - 64-bit floating point\n",
|
||||
"- `BFloat16` - Brain Floating Point format (16-bit)\n",
|
||||
"- `TFloat32` - Tensor Float32 format (reduced precision format used in tensor operations)\n",
|
||||
"- `Float8E4M3` - 8-bit floating point with 4-bit exponent and 3-bit mantissa\n",
|
||||
"- `Float8E5M2` - 8-bit floating point with 5-bit exponent and 2-bit mantissa\n",
|
||||
"\n",
|
||||
"These specialized types are designed to represent dynamic values in CuTe DSL code that will be \n",
|
||||
"evaluated at runtime, in contrast to Python's built-in numeric types which are evaluated during \n",
|
||||
"compilation.\n",
|
||||
"\n",
|
||||
"### Example usage:\n",
|
||||
"\n",
|
||||
"```python\n",
|
||||
"x = cutlass.Int32(5) # Creates a 32-bit integer\n",
|
||||
"y = cutlass.Float32(3.14) # Creates a 32-bit float\n",
|
||||
"\n",
|
||||
"@cute.jit\n",
|
||||
"def foo(a: cutlass.Int32): # annotate `a` as 32-bit integer passed to jit function via ABI\n",
|
||||
" ...\n",
|
||||
"```"
|
||||
"```\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
" src_vec = src.load()\n",
|
||||
" dst_vec = src_vec[indices]\n",
|
||||
" print(f\"{src_vec} -> {dst_vec}\")\n",
|
||||
" if isinstance(dst_vec, cute.TensorSSA):\n",
|
||||
" if cutlass.const_expr(isinstance(dst_vec, cute.TensorSSA)):\n",
|
||||
" dst.store(dst_vec)\n",
|
||||
" cute.print_tensor(dst)\n",
|
||||
" else:\n",
|
||||
|
||||
Reference in New Issue
Block a user