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