Skip to content

Commit bdb47b0

Browse files
author
dyzheng
committed
fix: resolve 3 GPU compilation/runtime errors from PR deepmodeling#7746
- Fix link errors: add psi_paging.cpp to 3 test CMakeLists.txt targets (MODULE_ESTATE_elecstate_base, MODULE_ESTATE_elecstate_pw, MODULE_IO_read_wfc_nao_test, MODULE_PSI_Unittests) - Fix SIGSEGV: use custom read_value for device_memory_mode to handle empty string (avoid str_values[0] out-of-bounds on empty value re-read) - Fix stack smashing: remove unused __CUDA/__ROCM guarded members (compute_stream_, transfer_stream_) from Psi class to eliminate ABI inconsistency between library and test TUs
1 parent 5033b73 commit bdb47b0

5 files changed

Lines changed: 9 additions & 9 deletions

File tree

source/source_estate/test/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ AddTest(
3838
AddTest(
3939
TARGET MODULE_ESTATE_elecstate_base
4040
LIBS parameter base device
41-
SOURCES elecstate_base_test.cpp ../elecstate.cpp ../elecstate_tools.cpp ../occupy.cpp ../../source_psi/psi.cpp
41+
SOURCES elecstate_base_test.cpp ../elecstate.cpp ../elecstate_tools.cpp ../occupy.cpp ../../source_psi/psi.cpp ../../source_psi/psi_paging.cpp
4242
../../source_base/module_fft/fft_bundle.cpp ../../source_base/module_fft/fft_cpu.cpp
4343
)
4444

@@ -52,6 +52,7 @@ AddTest(
5252
../occupy.cpp
5353
../module_charge/charge_mpi.cpp
5454
../../source_psi/psi.cpp
55+
../../source_psi/psi_paging.cpp
5556
../../source_base/module_device/memory_op.cpp
5657
)
5758

source/source_io/module_parameter/read_input_item_system.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,10 @@ Available options are:
755755
756756
Only relevant when device=gpu and basis_type=pw.)";
757757
item.default_value = "";
758-
read_sync_string(input.device_memory_mode);
758+
item.read_value = [](const Input_Item& item, Parameter& para) {
759+
para.input.device_memory_mode = item.get_size() > 0 ? strvalue : "";
760+
};
761+
sync_string(input.device_memory_mode);
759762
item.check_value = [](const Input_Item& item, const Parameter& para) {
760763
const std::vector<std::string> avail_list = {"", "full_gpu", "paged"};
761764
if (std::find(avail_list.begin(), avail_list.end(), para.input.device_memory_mode) == avail_list.end())

source/source_io/test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ add_test(
253253
AddTest(
254254
TARGET MODULE_IO_read_wfc_nao_test
255255
LIBS parameter base device
256-
SOURCES read_wfc_nao_test.cpp ../module_wf/read_wfc_nao.cpp ../../source_psi/psi.cpp ../../source_basis/module_ao/parallel_orbitals.cpp
256+
SOURCES read_wfc_nao_test.cpp ../module_wf/read_wfc_nao.cpp ../../source_psi/psi.cpp ../../source_psi/psi_paging.cpp ../../source_basis/module_ao/parallel_orbitals.cpp
257257
)
258258

259259
add_test(

source/source_psi/psi.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,6 @@ class Psi
192192
T* psi_gpu_transfer_buffer_ = nullptr;
193193
int current_k_gpu_ = -1;
194194

195-
#if defined(__CUDA) || defined(__ROCM)
196-
void* compute_stream_ = nullptr;
197-
void* transfer_stream_ = nullptr;
198-
#endif
199-
200195
#ifdef __DSP
201196
using delete_memory_op = base_device::memory::delete_memory_op_mt<T, Device>;
202197
using resize_memory_op = base_device::memory::resize_memory_op_mt<T, Device>;

source/source_psi/test/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ AddTest(
33
LIBS parameter base device
44
SOURCES
55
psi_test.cpp
6-
../psi.cpp
6+
../psi.cpp
7+
../psi_paging.cpp
78
)
89

910
if(ENABLE_LCAO)

0 commit comments

Comments
 (0)