MCPcopy Create free account
hub / github.com/evilsocket/cake / gpu_gemv

Method gpu_gemv

cake-core/src/backends/vulkan/mod.rs:918–942  ·  view source on GitHub ↗
(
        &self,
        buf_x: &MappedBuffer,
        buf_w: &MappedBuffer,
        buf_w_f16: Option<&Arc<MappedBuffer>>,
        k: usize,
        n: usize,
    )

Source from the content-addressed store, hash-verified

916 /// Returns (result_data, output_buffer) so caller can cache the buffer.
917 #[allow(dead_code)]
918 fn gpu_gemv(
919 &self,
920 buf_x: &MappedBuffer,
921 buf_w: &MappedBuffer,
922 buf_w_f16: Option<&Arc<MappedBuffer>>,
923 k: usize,
924 n: usize,
925 ) -> (Vec<f32>, MappedBuffer) {
926 let buf_y = self.alloc_output(n);
927 // Use F16 kernel if available — halves memory bandwidth
928 let (entry, w_buf) = if let Some(f16_buf) = buf_w_f16 {
929 ("gemv_f16", f16_buf.buffer)
930 } else {
931 ("gemv", buf_w.buffer)
932 };
933 let result = self.dispatch_compute(
934 entry,
935 &[buf_x.buffer, w_buf, buf_y.buffer],
936 &buf_y,
937 n,
938 &[n as u32, k as u32, 0, 0],
939 ((n as u32).div_ceil(256), 1, 1),
940 );
941 (result, buf_y)
942 }
943
944 fn gpu_gemm(
945 &self,

Callers 1

gpu_matmulMethod · 0.80

Calls 2

alloc_outputMethod · 0.80
dispatch_computeMethod · 0.80

Tested by

no test coverage detected