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

Method view_key

cake-core/src/backends/vulkan/mod.rs:569–591  ·  view source on GitHub ↗
(tensor: &Tensor)

Source from the content-addressed store, hash-verified

567 /// Works for any dtype by extracting raw Vec pointer from CpuStorage.
568 #[allow(dead_code)]
569 fn view_key(tensor: &Tensor) -> Option<(usize, usize, usize, u64)> {
570 let (storage, layout) = tensor.storage_and_layout();
571 let ptr = match &*storage {
572 candle_core::Storage::Cpu(cpu) => {
573 // Extract raw pointer regardless of dtype
574 match cpu {
575 candle_core::CpuStorage::F16(v) => v.as_ptr() as usize,
576 candle_core::CpuStorage::F32(v) => v.as_ptr() as usize,
577 candle_core::CpuStorage::BF16(v) => v.as_ptr() as usize,
578 candle_core::CpuStorage::F64(v) => v.as_ptr() as usize,
579 _ => return None,
580 }
581 }
582 _ => return None,
583 };
584 let offset = layout.start_offset();
585 let count = layout.shape().elem_count();
586 let strides = layout.stride();
587 let stride_hash = strides
588 .iter()
589 .fold(0u64, |h, &s| h.wrapping_mul(0x517cc1b727220a95).wrapping_add(s as u64));
590 Some((ptr, offset, count, stride_hash))
591 }
592
593 fn get_or_upload(&self, tensor: &Tensor) -> Result<Arc<MappedBuffer>> {
594 let id = tensor.id();

Callers

nothing calls this directly

Calls 2

as_ptrMethod · 0.80
shapeMethod · 0.80

Tested by

no test coverage detected