Releases: tracel-ai/cubecl
Releases · tracel-ai/cubecl
Release list
v0.11.0-pre.2
What's Changed
- Feat/autotune observability (#1437) @SamuelBelanger
- CubeCL Environment: multiplatform HPC runtime API (#1435) @nathanielsimard
- Fix initialize memory failure with error handling + fallback (#1454) @nathanielsimard
- Invalidate the kernel cache when a kernel changes (#1455) @nathanielsimard
- fix(quant): map QuantParam::UE4M3 to FloatKind::E4M3 (#1450) @ThierryCantin-Demers
- Feat/dry run environment (#1457) @nathanielsimard
- fix(runtime): check PendingDropQueue during gpu writes to prevent u32 overflow (#1456) @for-lack-of-a-better-name-j
- Adaptive autotune scheduler with early elimination (#1449) @SamuelBelanger @nathanielsimard
- feat(runtime): DeviceProperties::identity (#1465) @nathanielsimard
- feat(tune): roofline bounds from a Work amount and per-resource thresholds (#1462) @SamuelBelanger
- fix(float): correct the e4m3 and e5m2 limits and exponent constants (#1472) @nathanielsimard
- feature(cubecl-cuda): add cuda graph capture and replay (#1469) @michaelvsinko
- fix(cuda): reclaim and retry a failed device reserve (#1468) @laurigates
- fix(common): give device runner threads a shutdown path (#1470) @nathanielsimard
- fix(runtime): classify driver out-of-memory apart from BufferTooBig (#1474) @ThierryCantin-Demers
- Add a two-level quantization level (#1453) @nathanielsimard
- fix(common): call ceil through num_traits so round_up builds on no_std (#1475) @ThierryCantin-Demers
- fix(cpp): materialize constant bitcasts as lvalues (#1477) @jcwal1516
- fix(common): release the caller's borrows before waking it in run_scoped (#1478) @ThierryCantin-Demers
- fix(spirv): name the FPEncoding variants added in tracel-rspirv 0.13.3 (#1484) @louisfd
- fix(cubecl-hip): implement sync_warp instead of emitting #error (#1483) @nathanielsimard
- feat(common): add ComptimeFloat and Ratio for hashable comptime kernel params (#1482) @SamuelBelanger
- chore: version Cargo.lock (#1485) @ThierryCantin-Demers
- chore: bump version to 0.11.0-pre.2 (#1489) @laggui
- fix(publish): add missing cubecl-environment (#1490) @laggui
v0.11.0-pre.1
What's Changed
- Add tiled layout (#1329) @Sublime12
- Bump version to 0.11.0-pre.1 (#1326) @laggui
- feat: streaming: add stream priority hint, wire into CUDA backend (#1324) @lilith
- perf: lighter cpu runtime (#1330) @marcantoinem
- feat: Add support for
VK_EXT_shader_long_vector(#1188) @wingertge - mega-refactor: Totally change the frontend to enable references, among other things (#1322) @wingertge
- Add f64 support back for CUDA. (#1321) @vaijira
- fix: Ensure constant block args are generated in the correct block (#1332) @wingertge
- Add workgroupUniformLoad primitive (#1327) @ArthurBrussee
- fix: shared memories allocation calculation were wrong (#1337) @marcantoinem
- make renderdoc optional (does not compile on mac os) (#1339) @louisfd
- Metal: fix atomic syntax (#1340) @louisfd
- Metal: missing space caused compilation errors (#1342) @louisfd
- Feat/obfuscation (#1341) @nathanielsimard
- fix metal compilation (#1343) @louisfd
- fix: Fix more compilation issues on metal (#1347) @wingertge
- feat(runtime): add memory_usage_total aggregating all streams (#1333) @ArthurBrussee
- Refactor/wgpu compilers (#1346) @nathanielsimard
- Improve CPU backend by removing need to flush, add atomics test and add atomic to cubecl-cpu (#1345) @marcantoinem
- fix: CubeOr expand methods computed AND instead of OR (#1350) @LucaCappelletti94
- fix: short-circuit || and && in #[cube] code (#1348) @LucaCappelletti94
- refactor: Add a lifetime to views (#1344) @wingertge
- fix:
Assign/init_mut(#1355) @wingertge - fix: cubecl-cpu synchronisation problem (#1356) @marcantoinem
- fix: skip kernel launch when cube count is zero (#1349) @LucaCappelletti94
- fix: Fix atomics on CUDA again (#1354) @wingertge
- Refactor/readme (#1358) @nathanielsimard
- fix: re-export wgpu::Backend from cubecl-wgpu (#1357) @zhan-wei-919
- refactor(runtime): aggregate memory_usage + memory_cleanup in client (#1360) @ArthurBrussee
- Tiling as a composable view layout (#1362) @louisfd
- fix(wgpu): bound live timestamp query sets per device (Metal counter-sample-buffer exhaustion) (#1361) @AdrianEddy
- fix shared memory bytes (#1367) @louisfd
- fix: reject unsupported kernel argument types instead of panicking (#1373) @LucaCappelletti94
- fix: don't panic when calling a non-path expression in a kernel (#1372) @LucaCappelletti94
- fixed typo check and bitwise test errors (#1369) @Andy2887
- fix: don't panic when const-folding an unfoldable const expression (#1374) @LucaCappelletti94
- book: constants (plane) (#1320) @Redhawk18
- feat: add expm1 lowering across backends (#1301) @shinaoka
- refactor: Simplify
Variableto align it with existing IRs (#1378) @wingertge - Feat/bytes improvements (#1379) @nathanielsimard
- Fix imports (#1383) @nathanielsimard
- Fix handling one tuple (#1382) @akiradeveloper
- fixes return Self::Scalar in impl_unary_func_scalar_out (Fixes #1283) (#1338) @ethqnol
- Feat/fix abusive allocation in CPU backend (#1385) @marcantoinem
- feat: Coordinates CoordsDynI type (#1386) @SamuelBelanger
- Add read_lazy method for non-WASM targets in ComputeClient (#1392) @jwric
- add as read to view mut (#1393) @louisfd
- Cpu dump improvement (#1394) @marcantoinem
- add citation (#1335) @Redhawk18
- burn element trait related changes for
e4m3,e5m2(#1389) @skewballfox - Fix: returning panic payload in device channel tasks to caller and re-raising panic for blocking APIs (#1376) @Andy2887
- feat: metal backend (#1175) @dcvz
- fix(metal): attribute launch errors to the issuing stream (#1403) @dcvz
- fix(metal): validate shared memory limit before pipeline creation (#1405) @dcvz
- fixed cargo xtask validate fails on Linux (#1397) @Andy2887
- refactor: replace
dirswithetcetera(drops MPL-2.0option-ext) (#1395) @shimwell - Feat/new CPU runtime (#1400) @marcantoinem
- Peak device throughput (#1408) @ThierryCantin-Demers
- disaggregate-oob-consts (#1409) @nathanielsimard
- Fix/cpu index unit (#1411) @louisfd
- fix(cpu): reserve shared memory from a dedicated pool (#1412) @louisfd
- Feat/dynamic memory pool config (#1417) @nathanielsimard
- Feat/hip captured graph (#1415) @nathanielsimard
- update wgpu version (#1416) @Charles23R
- Fix/graph safety (#1419) @nathanielsimard
- Disable persistent tune cache option (#1423) @SamuelBelanger
- Feat/autotune throughput (#1422) @SamuelBelanger
- fix(cpu): parallelize sync_cube and clamp test cube dims to core count (#1424) @louisfd
- Cpu: Allow more threads than cores (#1426) @louisfd
- Wmma compile error (#1427) @nathanielsimard
- add cross-stream input bindings pinning wgpu (#1434) @Charles23R
- fix atomic import (#1441) @Charles23R
- Allow nested tuple destructure (#1420) @akiradeveloper
- feat: add
AsIndexfallible dimension index conversion (#1445) @mattisonchao - chore: use tracel-llvm version 22.1.4-5 (#1447) @laggui
- fix: add missing cubecl-metal publish (#1448) @laggui
v0.10.0
What's Changed
- Port over parts of
burn-stdtocubecl-zspace. (#1139) @crutcher - chore: bump tracel-llvm version to 20.1.4-6 (#1141) @syl20bnr
- Rename
try_cast_uncheckedtodowncast(#1146) @adolago - feat: Slice destructure/Fixed dim layout (#1149) @wingertge
- Propagate lint rules to crates; fix outstanding violations. (#1138) @crutcher
- fix(spirv): reuse decorated struct id for wkgrp layout(tracel-ai/burn#4355) (#1154)
- fix(spirv): Fix dim type for metadata (#1155) @wingertge
- fix: Ensure
copy_intoworks correctly for different ranks (#1150) @wingertge - feat(spirv): Compilation cache (#1158) @wingertge
- fix(spirv): Fix stack overflow by migrating GVN to iterative algorithm (#1156) @wingertge
- chore(cuda): Bump cudarc for
fallback-dynamic-loading(#1159) @wingertge - fix(spirv): Don't do copy transform if either operand is written to in between read and write (#1161) @wingertge
- Upgrade to wgpu v28 (#1119) @laggui
- fix(metal): fix float to int narrowing (#1163) @dcvz
- Fix MLIR pass ordering and add CPU barrier support (#1151) @jguhlin
- fix: error driver not found! in CI and update to Tracel GH action v8 (#1169) @syl20bnr
- chore: update publish.yml (#1171) @syl20bnr
- Feat: Improve registry (#1172) @nathanielsimard
- Add aliases for backend features consistent with burn (#1174) @wingertge
- fix: Fix SPIR-V fix for
CopyTransform(#1173) @wingertge - Add some missing infra for radix sorting (#1170) @ArthurBrussee
- feat: Add explicit resource errors (#1164) @wingertge
- Add safety docs to generated
launch_uncheckedfunctions (#1168) @adolago - perf: Improve optimized tensor algorithm (#1177) @wingertge
- feat: Vulkan 64bit indexing (#1178) @wingertge
- feat: Chunked binary compilation cache (#1166) @wingertge
- fix: Make TMA errors return a result instead of panicking (#1176) @wingertge
- chore: Update dependencies to deduplicate and get fixes (#1179) @wingertge
- Chore: Pre-Release 0.10.0-pre.1 (#1180) @nathanielsimard
- Upgrade to rand 0.10 (#1182) @laggui
- fix: remove unconditional std on cubecl-runtime and cubecl-common (#1184) @antimora
- feat: Enable 64-bit indexing (#1185) @wingertge
- perf: Remove unconditional format from virtual layout (#1186) @wingertge
- CudaServer::change_server_serialized simultaneous Commands. (#1143) @crutcher
- perf: Improve performance of
MetadataBuilder(#1187) @wingertge - refactor: Metadata (#1190) @wingertge
- fix: Make
cubecl-zspaceno_std, avoid future prelude issues (#1193) @wingertge - Dependency tweaks for building on Android (#1160) @metasim
- fix: Fix metadata on no_std (#1195) @wingertge
- fix(hip): use __hip_bfloat16 types and __hmax/__hmin for ROCm 7.1 (#1152) @GeisYaO
- chore: update to cubecl-hip-sys version 7.1.5280200 (#1192) @syl20bnr
- refactor: Remove
CubeOptionin favor of expandingOption(#1194) @wingertge - Update version (#1205) @nathanielsimard
- Refactor device communication channel (#1199) @nathanielsimard
- Fix/no std device + improve channel device handle performance (#1209) @nathanielsimard
- Mma inplace version & 16x8x8 support (#1213) @louisfd
- feat: Runtime enum (#1208) @wingertge
- Fix wasm compilation error (#1206) @ArthurBrussee
- Fix/memory management (#1214) @nathanielsimard
- Fix: Benchmarking and Profiling (#1220) @nathanielsimard
- fix: Fix for loops with breaks (#1222) @paulzhng
- Remove critical section (#1223) @nathanielsimard
- Fix multiple bugs (#1225) @nathanielsimard
- refactor: Line size generic (#1221) @wingertge
- refactor: Rename and refactor dynamic types (#1229) @wingertge
- rm f32 float from metal (#1233) @louisfd
- feat: Allow view layouts to infer launch info from buffer metadata (#1231) @wingertge
- Remove atomic ptr (#1228) @nathanielsimard
- Nccl all reduce (#1226) @Charles23R
- revert removing f32 atomic from metal (#1235) @louisfd
- chore: Update to wgpu v29, enable 64-bit buffers for Vulkan (#1236) @wingertge
- refactor: Merge
compilation_argandregister(#1237) @wingertge - Fix UB in memory handle location, fix cloning CubeCount::Dynamic (#1239) @ArthurBrussee
- feat: gitignore .DS_Store (#1240) @syl20bnr
- Fix 7 more cases of UB, fix flaky test (#1238) @ArthurBrussee
- fix(wgpu): flush staging buffers periodically during bulk writes (#1204) @holg
- remove nonexistant field (#1242) @louisfd
- fix(cubecl-runtime): PersistentPool HashMap key mismatch and reuse safety (#1241) @Veercodeprog
- Switch to effective_size (#1245) @nathanielsimard
- refactor: Scalars/Metadata (#1244) @wingertge
- chore: Clean up
MetadataBindingInfo(#1248) @wingertge - Fix: defer CPU staging buffer drops with PendingDropQueue (#1255) @nathanielsimard
- Replace bincode with ciborium for compilation cache (#1254) @Veercodeprog
- Fix GPU hangs on integrated AMD GPUs by increasing drop queue flush frequency (#1257) @nathanielsimard
- Document unsafe code in cubecl-hip/cubecl-cuda (#1258) @nathanielsimard
- Adds arena + refactor stream id (#1259) @nathanielsimard
- feat: Atomic vector (#1253) @wingertge
- fix: Fix metal compile error (#1261) @wingertge
- fix: Fix metal again, make features not mutually exclusive (#1262) @wingertge
- Try all options as fallback when autotuning (#1247) @ArthurBrussee
- fix: Use out item for atomic index so it works properly on Metal (#1265) @wingertge
- fix: Improve portability of Vulkan compiler (#1263) @wingertge
- Fix/cuda err all reduce (#1266) @Charles23R
- feat(wgpu): support zero-sized resources (#1256) @ArthurBrussee
- feat: Add
Validateexecution mode (#1268) @wingertge - fix: Remove
const __restrict__from atomic pointers in CUDA (#1273) @wingertge - fix: Remove optimized casts because it's not supported (#1269) @wingertge
- Feat/vector sum (#1286) @nathanielsimard
- Fix UB in arena dropping (#1287) @ArthurBrussee
- Fix performance regression rocm (#1284) @nathanielsimard
- Fix one case of unsoundness, and two other potential bugs. (#1289) @ArthurBrussee
- Fix/tuner group (#1291) @nathanielsimard
- Simplify async tuning (#1292) @ArthurBrussee
- ci: add job to execute miri tests in ci.yml workflow (#1251) @syl20bnr
- Fix and refactor all_reduce (#1290) @Charles23R
- Track tuning lifetime (#1293) @ArthurBrussee
- Feat/device service stage (#1302) @nathanielsimard
- Fix wasm compilation (#1305) @ArthurBrussee
- Refactor cubecl.toml config (#1303) @nathanielsimard
- Fix: actually use the priority (#1307) @nathanielsimard
- Fix cubecl-common Arc (#1308) @laggui
- Fix persistent memory pool reset storage utilization when reserve (#1309) @nathanielsimard
- Add more strategies than a spin loop (#1310) @nathanielsimard
- Improve error reporting on WASM (#1306) @ArthurBrussee
- Server send recv (#1304) @Charles23R
- Fix vector size check for strided tensors with unit strides on non-axis dims (#1312) @antimora
v0.10.0-pre.4
What's Changed
- Fix vector size check for strided tensors with unit strides on non-axis dims (#1312) @antimora
- Server send recv (#1304) @Charles23R
- Improve error reporting on WASM (#1306) @ArthurBrussee
- Add more strategies than a spin loop (#1310) @nathanielsimard
- Fix persistent memory pool reset storage utilization when reserve (#1309) @nathanielsimard
- Fix cubecl-common Arc (#1308) @laggui
- Fix: actually use the priority (#1307) @nathanielsimard
- Refactor cubecl.toml config (#1303) @nathanielsimard
- Fix wasm compilation (#1305) @ArthurBrussee
- Feat/device service stage (#1302) @nathanielsimard
- Track tuning lifetime (#1293) @ArthurBrussee
- Fix and refactor all_reduce (#1290) @Charles23R
- ci: add job to execute miri tests in ci.yml workflow (#1251) @syl20bnr
- Simplify async tuning (#1292) @ArthurBrussee
- Fix/tuner group (#1291) @nathanielsimard
- Fix one case of unsoundness, and two other potential bugs. (#1289) @ArthurBrussee
- Fix performance regression rocm (#1284) @nathanielsimard
- Fix UB in arena dropping (#1287) @ArthurBrussee
- Feat/vector sum (#1286) @nathanielsimard
Full Changelog: v0.10.0-pre.3...v0.10.0-pre.4
v0.10.0-pre.3
What's Changed
- fix: Remove optimized casts because it's not supported (#1269) @wingertge
- fix: Remove
const __restrict__from atomic pointers in CUDA (#1273) @wingertge - feat: Add
Validateexecution mode (#1268) @wingertge - feat(wgpu): support zero-sized resources (#1256) @ArthurBrussee
- Fix/cuda err all reduce (#1266) @Charles23R
- fix: Improve portability of Vulkan compiler (#1263) @wingertge
- fix: Use out item for atomic index so it works properly on Metal (#1265) @wingertge
- Try all options as fallback when autotuning (#1247) @ArthurBrussee
- fix: Fix metal again, make features not mutually exclusive (#1262) @wingertge
- fix: Fix metal compile error (#1261) @wingertge
- feat: Atomic vector (#1253) @wingertge
- Adds arena + refactor stream id (#1259) @nathanielsimard
- Document unsafe code in cubecl-hip/cubecl-cuda (#1258) @nathanielsimard
- Fix GPU hangs on integrated AMD GPUs by increasing drop queue flush frequency (#1257) @nathanielsimard
- Replace bincode with ciborium for compilation cache (#1254) @Veercodeprog
- Fix: defer CPU staging buffer drops with PendingDropQueue (#1255) @nathanielsimard
- chore: Clean up
MetadataBindingInfo(#1248) @wingertge - refactor: Scalars/Metadata (#1244) @wingertge
- Switch to effective_size (#1245) @nathanielsimard
- fix(cubecl-runtime): PersistentPool HashMap key mismatch and reuse safety (#1241) @Veercodeprog
- remove nonexistant field (#1242) @louisfd
- fix(wgpu): flush staging buffers periodically during bulk writes (#1204) @holg
- Fix 7 more cases of UB, fix flaky test (#1238) @ArthurBrussee
- feat: gitignore .DS_Store (#1240) @syl20bnr
- Fix UB in memory handle location, fix cloning CubeCount::Dynamic (#1239) @ArthurBrussee
- refactor: Merge
compilation_argandregister(#1237) @wingertge - chore: Update to wgpu v29, enable 64-bit buffers for Vulkan (#1236) @wingertge
- revert removing f32 atomic from metal (#1235) @louisfd
- Nccl all reduce (#1226) @Charles23R
- Remove atomic ptr (#1228) @nathanielsimard
- feat: Allow view layouts to infer launch info from buffer metadata (#1231) @wingertge
- rm f32 float from metal (#1233) @louisfd
- refactor: Rename and refactor dynamic types (#1229) @wingertge
- refactor: Line size generic (#1221) @wingertge
- Fix multiple bugs (#1225) @nathanielsimard
- Remove critical section (#1223) @nathanielsimard
- fix: Fix for loops with breaks (#1222) @paulzhng
- Fix: Benchmarking and Profiling (#1220) @nathanielsimard
- Fix/memory management (#1214) @nathanielsimard
- Fix wasm compilation error (#1206) @ArthurBrussee
- feat: Runtime enum (#1208) @wingertge
- Mma inplace version & 16x8x8 support (#1213) @louisfd
- Fix/no std device + improve channel device handle performance (#1209) @nathanielsimard
- Refactor device communication channel (#1199) @nathanielsimard
Full Changelog: v0.10.0-pre.2...v0.10.0-pre.3
v0.10.0-pre.2
What's Changed
- Upgrade to rand 0.10 by @laggui in #1182
- fix: remove unconditional std on cubecl-runtime and cubecl-common by @antimora in #1184
- feat: Enable 64-bit indexing by @wingertge in #1185
- perf: Remove unconditional format from virtual layout by @wingertge in #1186
- CudaServer::change_server_serialized simultaneous Commands. by @crutcher in #1143
- perf: Improve performance of
MetadataBuilderby @wingertge in #1187 - refactor: Metadata by @wingertge in #1190
- fix: Make
cubecl-zspaceno_std, avoid future prelude issues by @wingertge in #1193 - Dependency tweaks for building on Android by @metasim in #1160
- fix: Fix metadata on no_std by @wingertge in #1195
- fix(hip): use __hip_bfloat16 types and __hmax/__hmin for ROCm 7.1 by @GeisYaO in #1152
- chore: update to cubecl-hip-sys version 7.1.5280200 by @syl20bnr in #1192
- refactor: Remove
CubeOptionin favor of expandingOptionby @wingertge in #1194 - Update version by @nathanielsimard in #1205
Full Changelog: v0.10.0-pre.1...v0.10.0-pre.2
v0.10.0-pre.1
What's Changed
- Port over parts of
burn-stdtocubecl-zspace. by @crutcher in #1139 - chore: bump tracel-llvm version to 20.1.4-6 by @syl20bnr in #1141
- Rename
try_cast_uncheckedtodowncastby @adolago in #1146 - feat: Slice destructure/Fixed dim layout by @wingertge in #1149
- Propagate lint rules to crates; fix outstanding violations. by @crutcher in #1138
- fix(spirv): reuse decorated struct id for wkgrp layout(tracel-ai/burn#4355) by @djdisodo in #1154
- fix(spirv): Fix dim type for metadata by @wingertge in #1155
- fix: Ensure
copy_intoworks correctly for different ranks by @wingertge in #1150 - feat(spirv): Compilation cache by @wingertge in #1158
- fix(spirv): Fix stack overflow by migrating GVN to iterative algorithm by @wingertge in #1156
- chore(cuda): Bump cudarc for
fallback-dynamic-loadingby @wingertge in #1159 - fix(spirv): Don't do copy transform if either operand is written to in between read and write by @wingertge in #1161
- Upgrade to wgpu v28 by @laggui in #1119
- fix(metal): fix float to int narrowing by @dcvz in #1163
- Fix MLIR pass ordering and add CPU barrier support by @jguhlin in #1151
- fix: error driver not found! in CI and update to Tracel GH action v8 by @syl20bnr in #1169
- chore: update publish.yml by @syl20bnr in #1171
- Feat: Improve registry by @nathanielsimard in #1172
- Add aliases for backend features consistent with burn by @wingertge in #1174
- fix: Fix SPIR-V fix for
CopyTransformby @wingertge in #1173 - Add some missing infra for radix sorting by @ArthurBrussee in #1170
- feat: Add explicit resource errors by @wingertge in #1164
- Add safety docs to generated
launch_uncheckedfunctions by @adolago in #1168 - perf: Improve optimized tensor algorithm by @wingertge in #1177
- feat: Vulkan 64bit indexing by @wingertge in #1178
- feat: Chunked binary compilation cache by @wingertge in #1166
- fix: Make TMA errors return a result instead of panicking by @wingertge in #1176
- chore: Update dependencies to deduplicate and get fixes by @wingertge in #1179
- Chore: Pre-Release 0.10.0-pre.1 by @nathanielsimard in #1180
v0.9.0
What's Changed
- remove is_padded check by @louisfd in #988
- Fix plane matmul selection & reduce workgroup invocations by @laggui in #989
- bump 0.7.1 by @louisfd in #992
- Fix/misc/release 07 by @louisfd in #994
- Bump cubecl to version 0.9.0 by @laggui in #996
- perf: Separate batch layout from main global layout to allow prefetching batch offset by @wingertge in #991
- opt: Add automatic unrolling of unit loops by @wingertge in #986
- opt: Make GVN side-effect free and assume loops are executed at least once by @wingertge in #985
- Attention: some test refactoring by @louisfd in #999
- fix: Fix
ConcreteOutputFactoryimplementation in convolution by @wingertge in #998 - Flash Attention: Unit Attention by @louisfd in #1002
- ci: check version and use tracel action and xtask to publish by @syl20bnr in #995
- Fix/memory usage by @nathanielsimard in #1001
- feat: Allow
mmamatmul to be selected by @wingertge in #1003 - refactor: TMA checks by @wingertge in #1006
- feat: Update tune key to enable safely tuning TMA algorithms by @wingertge in #1007
- feat: Auto-detect CUDA version and fix some 12.8 features by @wingertge in #1008
- feat: Granular math mode by @wingertge in #1000
- Define numeric types by @nathanielsimard in #1009
- refactor: Read Strategy by @wingertge in #1010
- Fix cudarc feature flags for no default-features by @laggui in #1011
- Flash attention: unit & accelerated working attentions + fix partitions by @louisfd in #1012
- Flash attention: batch and num heads by @louisfd in #1014
- Flash Attention: bench by @louisfd in #1016
- feat: Specialized matmul using barriers by @wingertge in #1015
- Refactor/dtype by @nathanielsimard in #1017
- Disable/mma/amd by @nathanielsimard in #1020
- Add TMA checks before launch by @laggui in #1021
- Set pre-release version by @nathanielsimard in #1023
- Ci/disable version check by @nathanielsimard in #1024
- Flash Attention: Transpose key later by @louisfd in #1022
- Define many by @nathanielsimard in #1025
- Flash Attention: refactor dtypes by @louisfd in #1026
- Flash Attention: fix logical mask bug when kv partition > 1 by @louisfd in #1027
- Matmul: readers & jobs generic only on global and stage types by @louisfd in #1028
- Fix conv tests by @louisfd in #1029
- Fix remainder int by @laggui in #1033
- feat: Implement
ldmatrixand refactor manual mma args by @wingertge in #1018 - Feat/pinned mem by @nathanielsimard in #1030
- Fix no std file by @nathanielsimard in #1037
- fix: Fix issue with ldmatrix address conversion by @wingertge in #1038
- feat: Swizzled shared memory by @wingertge in #1035
- feat: add trigonometric functions by @relativityhd in #861
- Fix SPIR-V signed int remainder semantics by @laggui in #1036
- fix: Fix MMA on HIP by @wingertge in #1039
- Fix deadlock when copy by @nathanielsimard in #1041
- Fix: invalid tile size by @nathanielsimard in #1043
- fix: Feature gate fast tanh by @wingertge in #1045
- Bump version by @nathanielsimard in #1054
- perf: MMA line size by @wingertge in #1044
- Fix fma so its callable from #cube functions by @amfaber in #1049
- Treat Operation::Copy as an implicit cast as well on the CPU backend by @amfaber in #1050
- Ensure we propagate the return index when a return block is folded into an existing block by @amfaber in #1051
- Improve compilation time for Burn by @nathanielsimard in #1055
- Matmul: Major config refactor by @louisfd in #1042
- Kernels: some cleanup by @louisfd in #1058
- Fix: assertion for line_size in naive.rs (#1046) by @PulsarUnderscore in #1047
- fix: Fix writer stage size that was broken during the config migration by @wingertge in #1061
- Fix/autotuner by @nathanielsimard in #1062
- Chore: Prepare pre-version 0.9.0-pre.3 by @nathanielsimard in #1066
- Fix workgroup_id typo in book by @BenFradet in #1060
- fix: Fix composite merge pass with mutable values by @wingertge in #1063
- feat: Implement stmatrix and stage casting to support it by @wingertge in #1056
- refactor: Scalars by @wingertge in #1064
- Feat/event bus by @nathanielsimard in #950
- Flash Attention: use loader from matmul + fix sync bug by @louisfd in #1067
- refactor: Move
Runtimetocubecl-runtimeby @wingertge in #1068 - Flash Attention: vectorized query + fix metal wmma load from global memory + fix main compilation by @louisfd in #1069
- Flash Attention: fix all-masked rows by @louisfd in #1070
- Enable tuner name by @nathanielsimard in #1071
- Flash attention: lines for mask and value by @louisfd in #1072
- Flash Attention: all lines by @louisfd in #1073
- Flash Attention: test and fix f16 by @louisfd in #1074
- Feat/execution error by @nathanielsimard in #1075
- Flash Attention: strengthen test suite by @louisfd in #1077
- Feat/runtime error by @nathanielsimard in #1078
- Flash Attention: a bit of selector and enable unit attention for burn by @louisfd in #1079
- Fix missing parenthesis on .into call by @BjornTheProgrammer in #1080
- feat: Rewrite async loaders to make them actually useful by @wingertge in #1076
- Set pre-release by @nathanielsimard in #1082
- Feat/improve errors by @nathanielsimard in #1084
- refactor: Convolution by @wingertge in #1083
- Fix/stuff by @nathanielsimard in #1085
- fix: Fix line size selection for convolution by @wingertge in #1086
- Feat/validation error by @nathanielsimard in #1088
- .gitignore editors/ides (cloned from burn) by @crutcher in #1089
- feat: Shared values by @wingertge in #1090
- Flash Attention: Blueprint by @louisfd in #1087
- Migrate kernels part 1 by @nathanielsimard in #1095
- Bump pre-release by @nathanielsimard in #1096
- Remove code by @nathanielsimard in #1097
- Feat/cpu scheduler by @nathanielsimard in #1098
- Fix/no std runtime by @nathanielsimard in #1100
- Fix unused pattern by @crutcher in #1091
- refactor: Tensor map by @wingertge in #1099
- feat: Add zero-copy Bytes support via bytes::Bytes allocator by @antimora in #1093
- add epsilon for type by @louisfd in #1101
- Fix try_into_vec for SharedBytesAllocationController by @antimora in ht...
v0.8.1
Bug Fixes & Improvements
- Update
cudarc, auto-detect CUDA version and fix some 12.8 features (#1008 #1011) @wingertge - Fix/memory usage with improved sliced memory pool implementation (#1001) @nathanielsimard
v0.8.0
Summary
CubeCL 0.8.0 introduces major enhancements to quantization and matrix operations, near-complete flash attention implementation, and comprehensive matmul refactoring built on a new views and layouts system. This release brings a new MLIR-based CPU backend with LLVM, improved memory management with multi-stream support, and persistent storage capabilities.
What's New
Features
- Flash Attention: Full implementation with masking support, partitions, row-wise reductions, and multi-plane operations (@louisfd, #845, #962, #902, #920, #907)
- MLIR CPU Backend: Initial implementation providing CPU runtime support for non-Linux systems (@marcantoinem, #698, #790)
- Advanced Quantization: Block-scaled MMA, global quantization for matmul, quantized views, and support for FP4/FP2 formats (@wingertge, @nathanielsimard, #815, #960, #954, #836, #809)
- Persistent Memory: Added persistent storage capabilities for artifacts (@nathanielsimard, #947)
- Multi-Stream Support: Implemented multi-stream processing for WGPU and CUDA (@nathanielsimard, #914, #896)
- Tensor Memory Arrays (TMA): Added TMA views for optimized memory access (@wingertge, #943)
- Pinned Memory: Support for pinned memory allocations (@nathanielsimard, #885)
- Manual MMA Operations: Added manually managed MMA operations with custom tile support (@wingertge, #935, #810)
- Stacked and Tensor Layouts: New layout system for matmul and advanced tensor operations (@wingertge, #855, #835, #839)
- Saturating Arithmetic: Added saturating add/sub operations (@wingertge, #898)
- Shuffle Operations: Basic shuffle operations support (@huy209vn, #968)
- Additional Ops:
Trunc,IsNan,IsInf, andpowifor CUDA/HIP (@mooori, @laggui, @wingertge, #956, #937, #857) - Partition Scheduler: New scheduling system for shared memory reads in Matmul (@louisfd, #837)
Performance Improvements
- Optimized Line Sizes: Unrolled line sizes for matmul, convolution, reduce, and attention operations (@wingertge, #918)
- Memory Management: Refactored memory management API and static memory pool (@wingertge, @nathanielsimard, #800, #787)
- Device Locking: Improved device management and CUDA device change optimization (@nathanielsimard, #959, #864)
- Reusable Shared Memory: Enhanced shared memory management (@wingertge, #931)
Breaking Changes
- CUDA 12.8 Default: Bumped default CUDA version to 12.8 with new feature implementations (@wingertge, #820)
- Item Rework: Refactored item handling system (@wingertge, #844)
Refactoring
- Matmul Restructuring: Extensive refactoring of matmul components including inputs, tile operations, generics, and stage memory configuration (@wingertge, @louisfd, #949, #886, #819, #795, #794)
- Launch System: Refactored launch mechanism (@wingertge, #944)
- Stage and Global Writers: Improved writer architecture (@wingertge, #924)
- Runtime Features: Split and reorganized runtime traits (@wingertge, #883, #868)
- Convolution: Refactored convolution implementation (@wingertge, #822)
Bug Fixes
- Quantized Matmul: Fixed quant matmul line sizes and packed matmul issues (@wingertge, #978, #967)
- Tensor Operations: Corrected tensor shapes in reduce operations and fixed reverse sequence mutation (@TsaoLun, @wingertge, #976, #957)
- Metal Backend: Fixed plane operations on Metal (@louisfd, #964)
- WGPU Improvements: Fixed async readback, multi-stream support, and out-of-bounds writes (@ArthurBrussee, @nathanielsimard, #925, #912, #961)
- Broadcasting: Fixed broadcasting issues in compare ops and binary operations (@wingertge, #916, #895)
- WGSL Fixes: Corrected scalar declarations, vec-to-scalar casts, and boolean logic (@wingertge, @Cielbird, #818, #808, #840)
- Profiling: Resolved profiling deadlock (@nathanielsimard, #963)
- Type Conversions: Fixed packed FP4 casting and comparison vectorization (@wingertge, @laggui, #890, #858)
Infrastructure
- WGPU 26: Upgraded to wgpu version 26 (@janhohenheim, #850)
- Vulkan/rspirv Fork: Forked and integrated Vulkan/rspirv (@wingertge, #880)
- SPIRV Dump: Auto-enable spirv-dump when output path is set during build (@wingertge, #928)
- Deterministic Hashing: Made hash generation deterministic (@wingertge, #948)
- No-std Support: Added no-std compatibility for cubecl-quant (@laggui, #911, #812)
- Streaming Logger: Added streaming logger and configuration (@nathanielsimard, #917)
- Build Improvements: Enhanced CUDA version selection with build scripts (@wingertge, #856)
Documentation
- Book Updates: Various improvements to documentation (@louisfd, #977)
- Getting Started: Fixed GpuTensor examples (@ChosunOne, #852)
Platform Support
- CPU on All OSes: Enabled cubecl-cpu on all operating systems (@syl20bnr, #897)
- WebGPU/WASM: Fixed WebGPU and WASM support (@ArthurBrussee, #824, #908)
- HIP Updates: Updated HIP backend with wmma compiler refactoring (@nathanielsimard, #975, #789)