Emu是用于编程GPU的高级语言。与其他语言(如OpeCL或Halide)嵌入C或C++不同,Emu用于嵌入Rust。它为编写函数提供了单个过程宏。宏将编译时的函数转换为较低级别的代码,以便它们可以在GPU上运行。
Emu还提供了一些旨在使编程GPU更易于访问的功能,例如内置数学和物理常量,单元注释和隐式转换。这是一些示例函数:emu!{//moreparticlesmore_particles(um_particlesu32,um_molesu32)u32{returum_particles+um_moles*L;}//movesparticlesmove_particles(global_particles_x[f32],global_particles_yf32,global_particles_zf32){global_particles_z[get_global_id(0)]+=7.3e1asm;global_particles_x[get_global_id(0)]+=2ascm;global_particles_y[get_global_id(0)]+=6ascm;}//movesparticlesicirclerotate_particles(global_particles_r[f32]){global_particles_r[get_global_id(0)]+=7.5*TAU;}//multiplies2matrices//isthedimesioofthematrices//aadbarethematricestobemultiplied,cistheresultmultiply_matrices(i32,global_a[f32],global_b[f32],global_c[f32]){//idicesofcellstomultiplyleti:i32=get_global_id(0);letj:i32=get_global_id(1);//executestepofmultiplicatioforki0..{global_c[i*+j]+=global_a[i*+k]*global_b[k*+j];}}}点击空白处退出提示
评论