where is the ./configure of TensorFlow and how to enable the GPU support?

后端 未结 4 1307
甜味超标
甜味超标 2021-02-13 15:38

When installing TensorFlow on my Ubuntu, I would like to use GPU with CUDA.

But I am stopped at this step in the Official Tutorial :

Where exactly is t

相关标签:
4条回答
  • 2021-02-13 15:56
    • Answer to first question: ./configure has already been found according to the answer here. It is under the source folder of tensorflow as shown here.

    • Answer to second question:

    Actually, I have the GPU NVIDIA Corporation GK208GLM [Quadro K610M]. I also have CUDA + cuDNN installed. (Therefore, the following answer is based on you have already installed CUDA 7.0+ + cuDNN correctly with the correct versions.) However the problem is: I have driver installed but the GPU is just not working. I made it working in the following steps:

    At first, I did this lspci and got:

    01:00.0 VGA compatible controller: NVIDIA Corporation GK208GLM [Quadro K610M] (rev ff)
    

    The status here is rev ff. Then, I did sudo update-pciids, and check lspci again, and got:

    01:00.0 VGA compatible controller: NVIDIA Corporation GK208GLM [Quadro K610M] (rev a1)
    

    Now, the status of Nvidia GPU is correct as rev a1. But now, the tensorflow is not supporting GPU yet. The next steps are (the Nvidia driver I installed is version nvidia-352):

    sudo modprobe nvidia_352
    sudo modprobe nvidia_352_uvm
    

    in order to add the driver into correct mode. Check again:

    cliu@cliu-ubuntu:~$ lspci -vnn | grep -i VGA -A 12
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208GLM [Quadro K610M] [10de:12b9] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: Hewlett-Packard Company Device [103c:1909]
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at cb000000 (32-bit, non-prefetchable) [size=16M]
        Memory at 50000000 (64-bit, prefetchable) [size=256M]
        Memory at 60000000 (64-bit, prefetchable) [size=32M]
        I/O ports at 5000 [size=128]
        Expansion ROM at cc000000 [disabled] [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
    cliu@cliu-ubuntu:~$ lsmod | grep nvidia
    nvidia_uvm             77824  0 
    nvidia               8646656  1 nvidia_uvm
    drm                   348160  7 i915,drm_kms_helper,nvidia
    

    We can find that the Kernel driver in use: nvidia is shown and nvidia is in correct mode.

    Now, use the example here for testing the GPU:

    cliu@cliu-ubuntu:~$ python
    Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
    [GCC 4.9.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow as tf
    >>> a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    >>> b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    >>> c = tf.matmul(a, b)
    >>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
    I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:888] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
    I tensorflow/core/common_runtime/gpu/gpu_init.cc:88] Found device 0 with properties: 
    name: Quadro K610M
    major: 3 minor: 5 memoryClockRate (GHz) 0.954
    pciBusID 0000:01:00.0
    Total memory: 1023.81MiB
    Free memory: 1007.66MiB
    I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 0 
    I tensorflow/core/common_runtime/gpu/gpu_init.cc:122] 0:   Y 
    I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Quadro K610M, pci bus id: 0000:01:00.0)
    I tensorflow/core/common_runtime/gpu/gpu_region_allocator.cc:47] Setting region size to 846897152
    I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8
    Device mapping:
    /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K610M, pci bus id: 0000:01:00.0
    I tensorflow/core/common_runtime/local_session.cc:107] Device mapping:
    /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K610M, pci bus id: 0000:01:00.0
    
    >>> print sess.run(c)
    b: /job:localhost/replica:0/task:0/gpu:0
    I tensorflow/core/common_runtime/simple_placer.cc:289] b: /job:localhost/replica:0/task:0/gpu:0
    a: /job:localhost/replica:0/task:0/gpu:0
    I tensorflow/core/common_runtime/simple_placer.cc:289] a: /job:localhost/replica:0/task:0/gpu:0
    MatMul: /job:localhost/replica:0/task:0/gpu:0
    I tensorflow/core/common_runtime/simple_placer.cc:289] MatMul: /job:localhost/replica:0/task:0/gpu:0
    [[ 22.  28.]
     [ 49.  64.]]
    

    As you can see, the GPU is utilized.

    0 讨论(0)
  • 2021-02-13 16:08

    This is a bash script which suppose to be in

    the root of your source tree

    when you cloned the repo. Here it is https://github.com/tensorflow/tensorflow/blob/master/configure

    0 讨论(0)
  • 2021-02-13 16:12

    you can rebuild a GPU version from the source only if you have the 7.0 cuda libraries and the 6.5 cudnn libraries. this need to be updated by google, I think

    0 讨论(0)
  • 2021-02-13 16:14

    For your second question: Do you have a compatible GPU (NVIDIA compute capability 3.5 or higher) installed, and do you have CUDA 7.0 + cuDNN installed as per the instructions? That's the most likely reason you're seeing a failure. It could be a cuda install problem if the answer is yes. Do you see your GPU listed when you run nvidia-smi? If not, you need to get that fixed first. This may require getting a newer driver and/or re-running nvidia-xconfig, etc.

    0 讨论(0)
提交回复
热议问题