From 322835d8220146fc5a542cdd0893d1293d044bc0 Mon Sep 17 00:00:00 2001 From: kilinchange Date: Tue, 9 Jan 2024 10:45:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(device.cc)=EF=BC=9A=E4=BB=8E=20cudaDeviceP?= =?UTF-8?q?rop::textureAlignment=20=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=AF=B9=E9=BD=90=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/02hardware/src/devices/nvidia/device.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/02hardware/src/devices/nvidia/device.cc b/src/02hardware/src/devices/nvidia/device.cc index 67b25580..4c5e3a47 100644 --- a/src/02hardware/src/devices/nvidia/device.cc +++ b/src/02hardware/src/devices/nvidia/device.cc @@ -24,12 +24,15 @@ namespace refactor::hardware { size_t free, total; CUDA_ASSERT(cudaMemGetInfo(&free, &total)); auto size = std::min(free, std::max(5ul << 30, total * 4 / 5)); - fmt::println("initializing Nvidia GPU {}, memory {} / {}, alloc {}", - card, free, total, size); + cudaDeviceProp prop; + CUDA_ASSERT(cudaGetDeviceProperties(&prop, 0)); + size_t alignment = prop.textureAlignment; + fmt::println("initializing Nvidia GPU {}, memory {} / {}, alloc {}, alignment {}", + card, free, total, size, alignment); return std::make_shared( std::make_shared(), size, - 256ul); + alignment); #else RUNTIME_ERROR("CUDA is not enabled"); #endif @@ -37,7 +40,7 @@ namespace refactor::hardware { Nvidia::Nvidia(int32_t card) : Device(card, cudaMemory(card)) {} - void Nvidia::setContext() const { + void Nvidia::setContext() const { #ifdef USE_CUDA CUDA_ASSERT(cudaSetDevice(_card)); #endif