pub struct GpuEngine {
pub device: Device,
pub queue: Queue,
/* private fields */
}Expand description
GPU compute engine for aggregations
Fields§
§device: DeviceGPU device handle (public for benchmarking)
queue: QueueGPU command queue (public for benchmarking)
Implementations§
Source§impl GpuEngine
impl GpuEngine
Sourcepub async fn new() -> Result<Self>
pub async fn new() -> Result<Self>
Initialize GPU engine
§Errors
Returns error if GPU initialization fails (no GPU available, driver issues, etc.)
Sourcepub async fn sum_i32(&self, data: &Int32Array) -> Result<i32>
pub async fn sum_i32(&self, data: &Int32Array) -> Result<i32>
Sourcepub async fn sum_f32(&self, data: &Float32Array) -> Result<f32>
pub async fn sum_f32(&self, data: &Float32Array) -> Result<f32>
Sourcepub async fn min_i32(&self, data: &Int32Array) -> Result<i32>
pub async fn min_i32(&self, data: &Int32Array) -> Result<i32>
Sourcepub async fn max_i32(&self, data: &Int32Array) -> Result<i32>
pub async fn max_i32(&self, data: &Int32Array) -> Result<i32>
Sourcepub async fn avg_f32(&self, data: &Float32Array) -> Result<f32>
pub async fn avg_f32(&self, data: &Float32Array) -> Result<f32>
Sourcepub async fn fused_filter_sum(
&self,
data: &Int32Array,
filter_threshold: i32,
filter_op: &str,
) -> Result<i32>
pub async fn fused_filter_sum( &self, data: &Int32Array, filter_threshold: i32, filter_op: &str, ) -> Result<i32>
Execute fused filter+sum aggregation on GPU (JIT-compiled kernel)
Toyota Way: Muda elimination - fuses filter and sum in single pass, eliminating intermediate buffer write.
§Arguments
data- Input array (Int32)filter_threshold- Filter threshold value (e.g., WHERE value > 1000)filter_op- Filter operator (“gt”, “lt”, “eq”, “gte”, “lte”, “ne”)
§Returns
Sum of filtered elements
§Errors
Returns error if GPU execution fails
§Example
ⓘ
// Equivalent to: SELECT SUM(value) FROM data WHERE value > 1000
let result = engine.fused_filter_sum(&data, 1000, "gt").await?;Auto Trait Implementations§
impl !Freeze for GpuEngine
impl !RefUnwindSafe for GpuEngine
impl Send for GpuEngine
impl Sync for GpuEngine
impl Unpin for GpuEngine
impl UnsafeUnpin for GpuEngine
impl !UnwindSafe for GpuEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more