How to share data among DataLoader processes to save memory

excuse me, I use the shared arrays you in your github repo, and I find memory usage grows up as traning goes on. Is that a normal one? Here is my code

create share memroy

def crt_share_array(shape,dtype=c_float,init_value=None) -> torch.Tensor:
    size = 1
    for dim in shape: size *= dim

    shared_array_base = mp.Array(dtype,size)
    shared_array = np.ctypeslib.as_array(shared_array_base.get_obj())
    shared_array = shared_array.reshape(*shape)
    shared_array = torch.from_numpy(shared_array)

    if init_value is not None:
        shared_array[...] = init_value
    return shared_array

some variable define in my pytorch Dataset

        self.sample_buffer_xyz = crt_share_array(
            (len(self.surface_lst),self.n_buffer,16384,3),dtype=c_float,init_value=0
        ).pin_memory()
        self.sample_buffer_sdf = crt_share_array(
            (len(self.surface_lst),self.n_buffer,16384),dtype=c_float,init_value=0
        ).pin_memory()
        self.current_index = crt_share_array(
            (len(self.surface_lst),),dtype=c_int,init_value=-1
        ).pin_memory()
        self.reload_num = 0