Skip to content

Commit 3a84d60

Browse files
bugfix: change vmm api from pass-by-value to pass-by-reference. (#300)
1 parent 1df7760 commit 3a84d60

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

xllm/core/platform/vmm_api.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ limitations under the License.
2222
namespace xllm {
2323
namespace vmm {
2424

25-
void create_phy_mem_handle(PhyMemHandle phy_mem_handle, int32_t device_id) {
25+
void create_phy_mem_handle(PhyMemHandle& phy_mem_handle, int32_t device_id) {
2626
int ret = 0;
2727
// actually, granularity size for physical page is 2MB by default for cuda
2828
// and npu, but 32MB for mlu
@@ -91,7 +91,7 @@ void create_phy_mem_handle(PhyMemHandle phy_mem_handle, int32_t device_id) {
9191
<< "Bytes";
9292
}
9393

94-
void create_vir_ptr(VirPtr vir_ptr, size_t aligned_size) {
94+
void create_vir_ptr(VirPtr& vir_ptr, size_t aligned_size) {
9595
int ret = 0;
9696
#if defined(USE_NPU)
9797
ret = aclrtReserveMemAddress(&vir_ptr, aligned_size, 0, nullptr, 0);
@@ -103,7 +103,7 @@ void create_vir_ptr(VirPtr vir_ptr, size_t aligned_size) {
103103
CHECK_EQ(ret, 0) << "Failed to create virtual memory handle";
104104
}
105105

106-
void release_phy_mem_handle(PhyMemHandle phy_mem_handle) {
106+
void release_phy_mem_handle(PhyMemHandle& phy_mem_handle) {
107107
int ret = 0;
108108
#if defined(USE_NPU)
109109
ret = aclrtFreePhysical(phy_mem_handle);
@@ -115,7 +115,7 @@ void release_phy_mem_handle(PhyMemHandle phy_mem_handle) {
115115
CHECK_EQ(ret, 0) << "Failed to release physical memory handle";
116116
}
117117

118-
void release_vir_ptr(VirPtr vir_ptr, size_t aligned_size) {
118+
void release_vir_ptr(VirPtr& vir_ptr, size_t aligned_size) {
119119
int ret = 0;
120120
#if defined(USE_NPU)
121121
ret = aclrtReleaseMemAddress(vir_ptr);
@@ -127,7 +127,7 @@ void release_vir_ptr(VirPtr vir_ptr, size_t aligned_size) {
127127
CHECK_EQ(ret, 0) << "Failed to release virtual memory handle";
128128
}
129129

130-
void map(VirPtr vir_ptr, PhyMemHandle phy_mem_handle) {
130+
void map(VirPtr& vir_ptr, PhyMemHandle& phy_mem_handle) {
131131
int ret = 0;
132132
#if defined(USE_NPU)
133133
ret = aclrtMapMem(vir_ptr, FLAGS_granularity_size, 0, phy_mem_handle, 0);
@@ -139,7 +139,7 @@ void map(VirPtr vir_ptr, PhyMemHandle phy_mem_handle) {
139139
CHECK_EQ(ret, 0) << "Failed to map virtual memory to physical memory";
140140
}
141141

142-
void unmap(VirPtr vir_ptr, size_t aligned_size) {
142+
void unmap(VirPtr& vir_ptr, size_t aligned_size) {
143143
int ret = 0;
144144
#if defined(USE_NPU)
145145
ret = aclrtUnmapMem(vir_ptr);

xllm/core/platform/vmm_api.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,22 @@ using PhyMemHandle = CUmemGenericAllocationHandle;
3939
namespace vmm {
4040

4141
// create a physical memory handle for a specific device
42-
void create_phy_mem_handle(PhyMemHandle phy_mem_handle, int32_t device_id);
42+
void create_phy_mem_handle(PhyMemHandle& phy_mem_handle, int32_t device_id);
4343

4444
// create a virtual memory pointer with a specific aligned size
45-
void create_vir_ptr(VirPtr vir_ptr, size_t aligned_size);
45+
void create_vir_ptr(VirPtr& vir_ptr, size_t aligned_size);
4646

4747
// release a physical memory handle
48-
void release_phy_mem_handle(PhyMemHandle phy_mem_handle);
48+
void release_phy_mem_handle(PhyMemHandle& phy_mem_handle);
4949

5050
// release a virtual memory pointer with a specific aligned size
51-
void release_vir_ptr(VirPtr vir_ptr, size_t aligned_size);
51+
void release_vir_ptr(VirPtr& vir_ptr, size_t aligned_size);
5252

5353
// map a virtual memory pointer to a physical memory handle
54-
void map(VirPtr vir_ptr, PhyMemHandle phy_mem_handle);
54+
void map(VirPtr& vir_ptr, PhyMemHandle& phy_mem_handle);
5555

5656
// unmap a virtual memory pointer with a specific aligned size
57-
void unmap(VirPtr vir_ptr, size_t aligned_size);
57+
void unmap(VirPtr& vir_ptr, size_t aligned_size);
5858

5959
} // namespace vmm
6060
} // namespace xllm

0 commit comments

Comments
 (0)