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

Method materialize

cake-core/src/models/common/disk_expert_provider.rs:417–443  ·  view source on GitHub ↗
(&self, data: crate::utils::tensor_storage::TensorData)

Source from the content-addressed store, hash-verified

415 /// Convert raw TensorData to a candle Tensor with target dtype/device.
416 #[inline]
417 fn materialize(&self, data: crate::utils::tensor_storage::TensorData) -> Result<Tensor> {
418 let target_device = if self.needs_device_transfer {
419 &self.device
420 } else {
421 &Device::Cpu
422 };
423
424 // Fast path: F32 storage → F32 target, zero-copy via Vec ownership transfer
425 if data.dtype == DType::F32 && self.dtype == DType::F32 {
426 let f32_data = Self::bytes_to_f32_vec(data.bytes);
427 return Tensor::from_vec(f32_data, &*data.shape, target_device);
428 }
429
430 let tensor = if data.dtype == self.dtype {
431 Tensor::from_raw_buffer(&data.bytes, data.dtype, &data.shape, target_device)?
432 } else {
433 let tensor = Tensor::from_raw_buffer(&data.bytes, data.dtype, &data.shape, &Device::Cpu)?;
434 let tensor = tensor.to_dtype(self.dtype)?;
435 if self.needs_device_transfer {
436 tensor.to_device(&self.device)?
437 } else {
438 tensor
439 }
440 };
441
442 Ok(tensor)
443 }
444}
445
446impl ExpertProvider for DiskExpertProvider {

Callers 2

read_expert_weightMethod · 0.80
get_expert_uncachedMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected