Skip to content

ডিভাইস লেয়ার ​

ওভারভিউ ​

ডিভাইস লেয়ার হল Memesplora-এর সর্বনিম্ন স্তর, যা অপারেটিং সিস্টেম এবং হার্ডওয়্যারের সাথে সরাসরি মিথস্ক্রিয়ার জন্য দায়ী, এবং একটি ইউনিফাইড মেমোরি/VRAM ব্যবস্থাপনা ইন্টারফেস প্রদান করে।

ডিভাইস ইন্টারফেস ​

go
type DeviceType int

const (
    DeviceRAM  DeviceType = iota // সিস্টেম মেমোরি
    DeviceVRAM                   // GPU মেমোরি
    DeviceSwap                   // সোয়াপ স্পেস/পার্সিস্টেন্ট
)

type DeviceInfo struct {
    ID        string     `json:"id"`
    Name      string     `json:"name"`
    Type      DeviceType `json:"type"`
    TotalSize uint64     `json:"total_size"`
    FreeSize  uint64     `json:"free_size"`
    UsedSize  uint64     `json:"used_size"`
    Healthy   bool       `json:"healthy"`
    Model     string     `json:"model,omitempty"`
}

RAM ডিভাইস বাস্তবায়ন ​

Linux ​

বেনামী মেমোরি ম্যাপিংয়ের জন্য mmap সিস্টেম কল ব্যবহার করে:

go
data, err := syscall.Mmap(-1, 0, size,
    syscall.PROT_READ|syscall.PROT_WRITE,
    syscall.MAP_PRIVATE|syscall.MAP_ANONYMOUS)

/proc/meminfo থেকে মেমোরি তথ্য।

Windows ​

VirtualAlloc ব্যবহার করে:

go
addr, err := windows.VirtualAlloc(0, size,
    windows.MEM_COMMIT|windows.MEM_RESERVE,
    windows.PAGE_READWRITE)

বাডি সিস্টেম বরাদ্দকারী ​

মেমোরি ব্যবস্থাপনা এবং বিভাজন কমানোর জন্য বাডি সিস্টেম ব্যবহার করে।

VRAM ডিভাইস ​

CUDA GPU মেমোরি ​

go
var dptr C.deviceptr
C.cudaMalloc(&dptr, size)
var free, total C.size_t
C.cudaMemGetInfo(&free, &total)

NVML GPU তথ্য ​

go
device, _ := nvml.DeviceGetHandleByIndex(0)
name, _ := device.GetName()
memory, _ := device.GetMemoryInfo()

প্ল্যাটফর্ম সমর্থন ​

প্ল্যাটফর্মRAM বরাদ্দমেমোরি তথ্যGPU সমর্থন
Linuxmmap + MAP_ANONYMOUS/proc/meminfoCUDA
WindowsVirtualAllocGlobalMemoryStatusExCUDA
macOSmmap + MAP_ANONYMOUSsysctl hw.memsizeসীমিত

Apache License 2.0