现在工作中经常接触pytorch,tensorflow等AI框架,记录下安装注意事项GPU测试方法
1.tensorflow
可以在https://tensorflow.google.cn/install页面查看安装说明,注意GPU的机器需要先安装CUDA,每个版本的CUDA都有对应的tensorflow的版本
pip install tensorflow==2.6.0
不指定即安装最新版本,在2.0以后版本无需区分CPU版本和GPU版本
如果是以前的版本需要这样安装GPU版本
pip install rensorflow-gpu==1.15.0
安装完以后可以通过这个代码来测试GPU是否可用
#!/usr/bin/python3 import tensorflow as tf print("Tensorflow Version:{}".format(tf.__version__)) print("Support GPU:{}".format(tf.test.is_gpu_available())) ''''高级版本不支持list_physical_devices 方法''' try: cpus = tf.config.list_physical_devices(device_type="GPU") gpus = tf.config.list_physical_devices(device_type="CPU") print(cpus) print(gpus) except Exception as e: print("Current version not support list_physical_devices function !")
以下是我安装的1.15版本打印的结果
Tensorflow Version: 1.15.3 2022-04-26 07:16:05.127623: I tensorflow/core/platform/cpu_feature_guard.cc:145] This TensorFlow binary is optimized with Intel(R) MKL-DNN to use the following CPU instructions in performance critical operations: AVX2 FMA To enable them in non-MKL-DNN operations, rebuild TensorFlow with the appropriate compiler flags. 2022-04-26 07:16:05.137984: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3099995000 Hz 2022-04-26 07:16:05.139056: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5ded840 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2022-04-26 07:16:05.139080: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version 2022-04-26 07:16:05.141319: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1 2022-04-26 07:16:05.744664: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:983] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2022-04-26 07:16:05.744977: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x8077030 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices: 2022-04-26 07:16:05.745012: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Quadro P2200, Compute Capability 6.1 2022-04-26 07:16:05.761296: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:983] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2022-04-26 07:16:05.761357: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Found device 0 with properties: name: Quadro P2200 major: 6 minor: 1 memoryClockRate(GHz): 1.493 pciBusID: 0000:00:0c.0 2022-04-26 07:16:05.766236: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0 2022-04-26 07:16:05.767164: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0 2022-04-26 07:16:05.768054: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10.0 2022-04-26 07:16:05.768964: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10.0 2022-04-26 07:16:05.769960: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10.0 2022-04-26 07:16:05.770872: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10.0 2022-04-26 07:16:05.771887: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2022-04-26 07:16:05.772031: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:983] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2022-04-26 07:16:05.772102: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:983] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2022-04-26 07:16:05.772134: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1767] Adding visible gpu devices: 0 2022-04-26 07:16:05.772986: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0 2022-04-26 07:16:05.773062: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1180] Device interconnect StreamExecutor with strength 1 edge matrix: 2022-04-26 07:16:05.773077: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1186] 0 2022-04-26 07:16:05.773086: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1199] 0: N 2022-04-26 07:16:05.773168: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:983] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2022-04-26 07:16:05.773243: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:983] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2022-04-26 07:16:05.773319: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1325] Created TensorFlow device (/device:GPU:0 with 4627 MB memory) -> physical GPU (device: 0, name: Quadro P2200, pci bus id: 0000:00:0c.0, compute capability: 6.1) Support GPU: True Current version not support list_physical_devices function !
tensorflow中获取cuda版本的代码
import tensorflow as tf sys_details = tf.sysconfig.get_build_info() print(sys_details["cuda_version"]) #返回 10.1
2.pytoch
这个可以在首页https://pytorch.org/,直接选择对应的版本,它都会给出安装命令,直接复制到本地进行安装就行,注意GPU的机器需要先安装CUDA,每个版本的CUDA都有对应的PyTorch的版本
安装好以后我们可以跑下代码看支不支持GPU,我这里只有CPU机器可以测试
#!/usr/bin/python3 #coding:utf-8 import torch print("PyTorch Version: {}".format(torch.__version__)) print("Support GPU:{}".format(torch.cuda.is_available())) ngpu= 1 device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu") print("Current used {}".format(device))
打印返回
PyTorch Version: 1.8.0+cpu Support GPU:False Current used cpu
torch获取cuda版本代码
import torch print(torch.version.cuda)