version/0.2.1
Pre-release
Pre-release
VERSION/0.2.1
14 Fev 2026
- memory allocator now uses monagement, monagement
- feature to set limitations
- change limitations based on driver capabilities,check:
use arr_o_gpu::ArrOgpuModule;
fn main() {
let module = ArrOgpuModule::default();
let driver_limit = module.get_adapter_limit();// driver limit
let device_limit = module.get_device_limit();// limit used by the device
}- execute_opt feature,provides the option to set workgroup_size.The operation that can do this currently:
- add
- sub
- mul
- div
- matmul
- matmul_2d
- note:using 2 dimensions.if set to 16 then 16x16=256
- matmul_nd
- note:similar to matmul_2d,but dim z cannot be set yet
- matmul_2d
- The use of execute_opt depends on the limitations.The maximum storage can also be increased by changing the limitations,for example:
use arr_o_gpu::{AddOpt,ArrOgpuModule,FunctionExecuteOpt,HeapSize,WgpuLimits};
fn main() {
let module = ArrOgpuModule::init(arr_o_gpu::ArrOgpuModuleInit {
limits: WgpuLimits {
max_storage_buffer_binding_size: 256 << 20,// 256MiB
max_compute_workgroup_size_x: 512,
..Default::default()
},
function_execute_opt: FunctionExecuteOpt {
add: AddOpt {
compute_workgroup_size_x: 512,// max_compute_workgroup_size_x must be 512
},
..Default::default()
},
heap_size: HeapSize::Item(39321600),// 150MiB
..Default::default()
});
}- expanding max_storage_buffer_binding_size,must pay attention to max_buffer_size
use arr_o_gpu::{ArrOgpuModule,WgpuLimits};
fn main() {
let module = ArrOgpuModule::init(arr_o_gpu::ArrOgpuModuleInit {
limits: WgpuLimits {
max_storage_buffer_binding_size: 512 << 20,
max_buffer_size: 512 << 20,
..Default::default()
},
..Default::default()
});
}- fixed a bug in matmul due to the difference in override names on the wgsl and rust sides
- resolved the matmul_nd_view.wgsl bug, in the form of tile_b not being updated
- resolved the matmul_nd_view.wgsl bug, which was a logic error in mapping the location of the value array from metadata
- add testing code