MCPcopy
hub / github.com/ModelTC/LightLLM / create_shm

Method create_shm

lightllm/server/core/objs/shm_array.py:18–36  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

16 self.dtype = dtype
17
18 def create_shm(self):
19 try:
20 shm = shared_memory.SharedMemory(name=self.name, create=True, size=self.dest_size)
21 except:
22 shm = shared_memory.SharedMemory(name=self.name, create=False, size=self.dest_size)
23
24 if shm.size != self.dest_size:
25 logger.warning(f"size not same, unlink shm {self.name} and create again")
26 shm.close()
27 shm.unlink()
28 try:
29 shm = shared_memory.SharedMemory(name=self.name, create=True, size=self.dest_size)
30 logger.info(f"create shm {self.name}")
31 except:
32 shm = shared_memory.SharedMemory(name=self.name, create=False, size=self.dest_size)
33 logger.info(f"link shm {self.name}")
34
35 self.shm = shm # SharedMemory 对象一定要被持有,否则会被释放
36 self.arr = np.ndarray(self.shape, dtype=self.dtype, buffer=self.shm.buf)
37
38 def link_shm(self):
39 shm = shared_memory.SharedMemory(name=self.name, create=False, size=self.dest_size)

Callers 7

shm_arrayFunction · 0.95
__init__Method · 0.80
init_alloc_state_shmMethod · 0.80
__init__Method · 0.80

Calls 1

closeMethod · 0.45

Tested by 2

shm_arrayFunction · 0.76