"vscode:/vscode.git/clone" did not exist on "446caf711c9e9ae4cdced65bf3609095b26fcde0"
Commit 37c494a7 authored by Zhekai Zhang's avatar Zhekai Zhang
Browse files

Initial release

parents
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#pragma once
#include "common.h"
#include "Tensor.h"
class BufferMMap : public Buffer {
public:
BufferMMap(void *ptr, size_t size, std::shared_ptr<void> parent) : parent(parent) {
this->size = size;
this->device.type = Device::CPU;
this->ptr = ptr;
// auto ret = cudaHostRegister(ptr, size, cudaHostRegisterPortable | cudaHostRegisterReadOnly);
// if (ret == cudaSuccess) {
// this->registered = true;
// } else {
// log(std::format("cudaHostRegister failed at {:p} (size={}): {}", ptr, size, cudaGetErrorString(cudaGetLastError())));
// this->registered = false;
// }
}
virtual ~BufferMMap() {
// if (registered) {
// checkCUDA(cudaHostUnregister(ptr));
// }
}
public:
std::shared_ptr<void> parent;
// bool registered;
};
class SafeTensors : public TensorsProvider, public std::enable_shared_from_this<SafeTensors> {
public:
SafeTensors(std::string_view filename);
~SafeTensors();
virtual bool contains(const std::string &key) const override {
return tensors.contains(key);
}
virtual Tensor getTensor(const std::string &key) override;
private:
void parseHeader();
private:
class mmap_file;
struct TensorInfo {
TensorShape shape;
Tensor::ScalarType type;
size_t offset;
size_t length;
std::weak_ptr<BufferMMap> buffer;
};
std::map<std::string, TensorInfo> tensors;
std::unique_ptr<mmap_file> mapped;
};
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment