From 32e2b57439c1fc7af6b3b394371dc7507314ce09 Mon Sep 17 00:00:00 2001 From: x54-729 <17307130121@fudan.edu.cn> Date: Tue, 3 May 2022 15:44:31 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=20USER=5FCUDA=5FVISIBLE=5FDEVICES=20?= =?UTF-8?q?=E4=B8=BA=20None=20=E6=97=B6=E4=B8=BA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastNLP/core/drivers/paddle_driver/fleet_launcher.py | 1 - .../core/drivers/paddle_driver/initialize_paddle_driver.py | 3 ++- fastNLP/core/drivers/paddle_driver/single_device.py | 5 ++++- fastNLP/core/utils/paddle_utils.py | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/fastNLP/core/drivers/paddle_driver/fleet_launcher.py b/fastNLP/core/drivers/paddle_driver/fleet_launcher.py index 471679a7..ca341db5 100644 --- a/fastNLP/core/drivers/paddle_driver/fleet_launcher.py +++ b/fastNLP/core/drivers/paddle_driver/fleet_launcher.py @@ -10,7 +10,6 @@ from fastNLP.envs.env import ( FASTNLP_DISTRIBUTED_CHECK, FASTNLP_LOG_LEVEL, FASTNLP_GLOBAL_SEED, - USER_CUDA_VISIBLE_DEVICES, ) from .utils import ( find_free_ports, diff --git a/fastNLP/core/drivers/paddle_driver/initialize_paddle_driver.py b/fastNLP/core/drivers/paddle_driver/initialize_paddle_driver.py index c0489e6e..46f51b9c 100644 --- a/fastNLP/core/drivers/paddle_driver/initialize_paddle_driver.py +++ b/fastNLP/core/drivers/paddle_driver/initialize_paddle_driver.py @@ -42,7 +42,8 @@ def initialize_paddle_driver(driver: str, device: Optional[Union[str, int, List[ user_visible_devices = os.getenv("USER_CUDA_VISIBLE_DEVICES") if user_visible_devices is None: - raise RuntimeError("This situation cannot happen, please report a bug to us.") + raise RuntimeError("`USER_CUDA_VISIBLE_DEVICES` cannot be None, please check if you have set " + "`FASTNLP_BACKEND` to 'paddle' before using FastNLP.") _could_use_device_num = len(user_visible_devices.split(",")) if isinstance(device, int): if device < 0 and device != -1: diff --git a/fastNLP/core/drivers/paddle_driver/single_device.py b/fastNLP/core/drivers/paddle_driver/single_device.py index b2546788..84572914 100644 --- a/fastNLP/core/drivers/paddle_driver/single_device.py +++ b/fastNLP/core/drivers/paddle_driver/single_device.py @@ -39,6 +39,9 @@ class PaddleSingleDriver(PaddleDriver): raise ValueError("`paddle.DataParallel` is not supported in `PaddleSingleDriver`") cuda_visible_devices = os.environ.get(USER_CUDA_VISIBLE_DEVICES, None) + if cuda_visible_devices is None: + raise RuntimeError("`USER_CUDA_VISIBLE_DEVICES` cannot be None, please check if you have set " + "`FASTNLP_BACKEND` to 'paddle' before using FastNLP.") if cuda_visible_devices == "": device = "cpu" logger.info("You have set `CUDA_VISIBLE_DEVICES` to '' in system environment variable, and we are gonna to" @@ -54,7 +57,7 @@ class PaddleSingleDriver(PaddleDriver): device_id = device else: device_id = get_paddle_device_id(device) - os.environ["CUDA_VISIBLE_DEVICES"] = os.environ[USER_CUDA_VISIBLE_DEVICES].split(",")[device_id] + os.environ["CUDA_VISIBLE_DEVICES"] = cuda_visible_devices.split(",")[device_id] self.model_device = get_paddle_gpu_str(device) self.local_rank = 0 diff --git a/fastNLP/core/utils/paddle_utils.py b/fastNLP/core/utils/paddle_utils.py index b9bc26a5..db68879f 100644 --- a/fastNLP/core/utils/paddle_utils.py +++ b/fastNLP/core/utils/paddle_utils.py @@ -37,8 +37,8 @@ def get_device_from_visible(device: Union[str, int], output_type=int): cuda_visible_devices = os.getenv("CUDA_VISIBLE_DEVICES") user_visible_devices = os.getenv(USER_CUDA_VISIBLE_DEVICES) if user_visible_devices is None: - raise RuntimeError("`USER_CUDA_VISIBLE_DEVICES` is None, please check if you have set " - "`FASTNLP_BACKEND` to 'paddle' before 'import fastNLP'.") + raise RuntimeError("`USER_CUDA_VISIBLE_DEVICES` cannot be None, please check if you have set " + "`FASTNLP_BACKEND` to 'paddle' before using FastNLP.") idx = get_paddle_device_id(device) # 利用 USER_CUDA_VISIBLDE_DEVICES 获取用户期望的设备 if user_visible_devices is None: