From cb0074cd57e598e5b368d309645f88d81de18221 Mon Sep 17 00:00:00 2001 From: Jagadish Krishnamoorthy Date: Fri, 27 Sep 2024 14:33:49 -0700 Subject: [PATCH] [ROCm] Fix subprocess error Fixes https://github.com/microsoft/DeepSpeed/issues/6585 Use shell=True for subprocess.check_output() in case of ROCm commands. Do not use shlex.split() since command string has wildcard expansion. Signed-off-by: Jagadish Krishnamoorthy --- op_builder/builder.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/op_builder/builder.py b/op_builder/builder.py index e935a179f6af..f95341f137b4 100644 --- a/op_builder/builder.py +++ b/op_builder/builder.py @@ -253,8 +253,7 @@ def get_rocm_gpu_arch(): rocm_info = Path("rocminfo") rocm_gpu_arch_cmd = str(rocm_info) + " | grep -o -m 1 'gfx.*'" try: - safe_cmd = shlex.split(rocm_gpu_arch_cmd) - result = subprocess.check_output(safe_cmd) + result = subprocess.check_output(rocm_gpu_arch_cmd, shell=True) rocm_gpu_arch = result.decode('utf-8').strip() except subprocess.CalledProcessError: rocm_gpu_arch = "" @@ -272,8 +271,7 @@ def get_rocm_wavefront_size(): rocm_wavefront_size_cmd = str( rocm_info) + " | grep -Eo -m1 'Wavefront Size:[[:space:]]+[0-9]+' | grep -Eo '[0-9]+'" try: - safe_cmd = shlex.split(rocm_wavefront_size_cmd) - result = subprocess.check_output(rocm_wavefront_size_cmd) + result = subprocess.check_output(rocm_wavefront_size_cmd, shell=True) rocm_wavefront_size = result.decode('utf-8').strip() except subprocess.CalledProcessError: rocm_wavefront_size = "32"