Files
xc-llm-kunlun/vllm_kunlun/csrc/vxpu_offload/shm_manager.h
2026-02-12 10:46:37 +08:00

35 lines
715 B
C++

#pragma once
#include "shm_helper.h"
#include "xpu_helper.h"
class ShmManager {
public:
ShmManager();
~ShmManager();
void set_xpu_info(int device_id, uint32_t xpu_pci_addr, size_t vmem_size,
const XPUIpcMemHandle &xpu_ipc_mem_handle);
void run_busy_loop();
void stop_busy_loop() {
stop_loop_flag.store(true, std::memory_order_release);
}
private:
ShmHelper *shm_helper;
int32_t _cur_worker_id;
std::vector<int32_t> local_worker_ids;
std::vector<int32_t> alive_worker_ids;
std::vector<int> valid_gpu_ids;
std::atomic<bool> stop_loop_flag;
int32_t get_next_worker_id();
// request
void process_requests();
// heart beat
void check_heart_beats();
};