| @@ -46,6 +46,7 @@ class GPUEnvChecker(EnvChecker): | |||
| def __init__(self): | |||
| self.version = ["10.1"] | |||
| self.lib_key_to_lib_name = {'libcu': 'libcuda.so'} | |||
| # env | |||
| self.path = os.getenv("PATH") | |||
| self.ld_lib_path = os.getenv("LD_LIBRARY_PATH") | |||
| @@ -131,25 +132,32 @@ class GPUEnvChecker(EnvChecker): | |||
| """Get gpu lib path by ldd command.""" | |||
| path_list = [] | |||
| current_path = os.path.split(os.path.realpath(__file__))[0] | |||
| ldd_result = subprocess.run(["ldd " + current_path + "/_c_expression*.so* | grep " + lib_name], | |||
| timeout=3, text=True, capture_output=True, check=False, shell=True) | |||
| if ldd_result.returncode: | |||
| logger.warning(f"{lib_name} so(need by mndspore-gpu) is not found, please confirm that " | |||
| f"_c_experssion.so depend on {lib_name}, " | |||
| f"and _c_expression.so in directory:{current_path}") | |||
| try: | |||
| ldd_result = subprocess.run(["ldd " + current_path + "/_c_expression*.so* | grep " + lib_name], | |||
| timeout=10, text=True, capture_output=True, check=False, shell=True) | |||
| if ldd_result.returncode: | |||
| logger.error(f"{self.lib_key_to_lib_name[lib_name]} (need by mindspore-gpu) is not found, please " | |||
| f"confirm that _c_expression.so is in directory:{current_path} and the correct cuda " | |||
| "version has been installed, you can refer to the installation " | |||
| "guidelines: https://www.mindspore.cn/install") | |||
| return path_list | |||
| result = ldd_result.stdout | |||
| for i in result.split('\n'): | |||
| path = i.partition("=>")[2] | |||
| if path.lower().find("not found") > 0: | |||
| logger.warning(f"Cuda {self.version} version(need by mindspore-gpu) is not found, please confirm " | |||
| "that the path of cuda is set to the env LD_LIBRARY_PATH, please refer to the " | |||
| "installation guidelines: https://www.mindspore.cn/install") | |||
| continue | |||
| path = path.partition(lib_name)[0] | |||
| if path: | |||
| path_list.append(os.path.abspath(path.strip() + "../")) | |||
| return np.unique(path_list) | |||
| except subprocess.TimeoutExpired: | |||
| logger.warning("Failed to check cuda version due to the ldd command timeout, please confirm that " | |||
| "the correct cuda version has been installed, you can refer to the " | |||
| "installation guidelines: https://www.mindspore.cn/install") | |||
| return path_list | |||
| result = ldd_result.stdout | |||
| for i in result.split('\n'): | |||
| path = i.partition("=>")[2] | |||
| if path.lower().find("not found") > 0: | |||
| logger.warning(f"Cuda {self.version} version(need by mindspore-gpu) is not found, please confirm " | |||
| "that the path of cuda is set to the env LD_LIBRARY_PATH, please refer to the " | |||
| "installation guidelines: https://www.mindspore.cn/install") | |||
| continue | |||
| path = path.partition(lib_name)[0] | |||
| if path: | |||
| path_list.append(os.path.abspath(path.strip() + "../")) | |||
| return np.unique(path_list) | |||
| def _read_version(self, file_path): | |||
| """Get gpu version info in version.txt.""" | |||