| 73 | #endif |
| 74 | |
| 75 | static void _copyBufferToTensor(const Tensor* dest, const VulkanBuffer* source, size_t offset, bool half2float = false) { |
| 76 | auto sourcePtr = (const float*)source->map(offset); |
| 77 | if (half2float) { |
| 78 | auto dstPtr = dest->host<float>(); |
| 79 | auto elementCount = static_cast<size_t>(dest->elementSize()); |
| 80 | HALF_TO_FLOAT(reinterpret_cast<const int16_t*>(sourcePtr), dstPtr, elementCount); |
| 81 | } else { |
| 82 | ::memcpy(dest->host<float>(), sourcePtr, dest->usize()); |
| 83 | } |
| 84 | source->unmap(); |
| 85 | } |
| 86 | |
| 87 | static void _copyTensorToBuffer(const Tensor* source, const VulkanBuffer* dest, size_t offset, bool float2half = false) { |
| 88 | auto destPtr = reinterpret_cast<uint8_t*>(dest->map(offset)); |
no test coverage detected