zoukankan      html  css  js  c++  java
  • CUDA_10.1.105_418.96_windows + cuDNN-10.1-windows7-x64-v7.6.5.32 + python3.8.5 + tenserflow2.2.0

      

    高版本CUDA 在算力低的显卡上不执行核函数,报错:no kernel image is available for execution on the device

    1.参考这篇博文,卸载高版本的CUDA,但是卸载CUDA后又要重新下载新的CUDA,配置环境,个人觉得很麻烦,那么可以参考第二种方案

    2.在nvcc 编译的时候指定显卡算力,具体的

    在VS2013项目右键-->属性-->配置属性-->CUDA C/C++ -->  Command Line 里增加  -arch sm_xx   ,这里的xx 是跟算力有关,例如GT640M的算力是3.0,那么就是 -arch sm_30

    查看CUDA版本信息

    (1)命令: nvidia-smi (C:Program FilesNVIDIA CorporationNVSMI vidia-smi.exe)

    (2)桌面右击NVIDIA控制面板

     

       

    桌面右击>NVIDIA控制面板>左下角系统信息>组件>查看系统CUDA版本一般向下兼容

    GeForce系列的显卡以及各个显卡的计算能力(compute capability) 

    python、tensorflow、CUDA、cuDNN版本对应关系https://tensorflow.google.cn/install/source_windows#gpu

    CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive

    cuDNN下载地址:https://developer.nvidia.com/rdp/cudnn-archive

    cuDNN需登录,可qq登录,点i agree,选择对应cuda版本,对应操作系统下载

    貌似不用提前装vs2017(太大),此处的vs最好不要勾选,Nsight两个有人勾选(不知道干嘛的)

    可以自己在D盘新建安装目录

    D:CUDANVIDIA_GPU_Computing_Toolkit; 

    D:CUDASamples;

    安装成功后cmd>nvcc -V 验证,提示版本表示成功,但不意味着可以使用

    查看GPU运行时的监测界面  nvidia-smi (C:Program FilesNVIDIA CorporationNVSMI vidia-smi.exe)

      

       

      配置环境变量

     

    CUDA_SDK_PATH = D:CUDACUDA Samples
    # 可以看到后面四个都是使用相对路径的
    CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%commonlibx64
    CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%inwin64
    CUDA_LIB_PATH = %CUDA_PATH%libx64
    CUDA_BIN_PATH = %CUDA_PATH%in

    检查环境变量配置是否成功:cmd>set cuda

     D:CUDANVIDIA_GPU_Computing_Toolkitextrasdemo_suite下 shift+右键 打开cmd

    cmd>deviceQuery.exe

    cmd>bandwidthTest.exe

    如果都出现result=PASS表示成功

    cuDNN解压

    将文件夹下的(bin、include、lib)移动到d:CUDANVIDIA_GPU_Computing_Toolkit下

    把D:CUDANVIDIA GPU Computing ToolkitextrasCUPTIlib64cupti64_102.dll
    拷贝到D:CUDANVIDIA GPU Computing Toolkitin

    https://www.dll-files.com/cudart64_110.dll.html

    安装tensorflow

    配置anaconda下载源

    C:UsersAdministratorAppDataRoamingpippip.ini

    [global]
    index-url = https://mirrors.aliyun.com/pypi/simple/

    # 清华源
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    # 阿里源
    pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
    # 腾讯源
    pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
    # 豆瓣源
    pip config set global.index-url http://pypi.douban.com/simple/ 
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free 
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

    这个源跟python的pip下载源一样的。配置文件位置: C:Usersyour_name下名为.condarc文件

     

    channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
    ssl_verify: true
    show_channel_urls: true
    auto_activate_base: false
    channel_priority: flexible
    

      

    安装pytorch

    conda create -n tensorflow python==3.8.5
    conda activate tensorflow
    #conda deactivate 

    pip install tensorflow-gpu==2.2.0       #-i https://pypi.tuna.tsinghua.edu.cn/simple

    pip install tensorflow-gpu==2.2.0 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 

    pip install tensorflow-gpu==2.4  -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

    验证tensorflow-gpu

    import tensorflow as tf
    #tf.test.is_gpu_available()   #检测gpu版本是否可用
    tf.config.list_physical_devices('GPU')
    tf.test.gpu_device_name()

    conda create -n pytorch python=3.8.5 
    conda activate pytorch
    #conda install torch torchvision torchaudio cudatoolkit==10.1        #https://download.pytorch.org/whl/torch_stable.html

    pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 torchaudio==0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

    pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

      

    if torch.cuda.is_available():
        model = model.cuda()

    安装mmcv
    https://github.com/open-mmlab/mmcv
    https://github.com/open-mmlab/mmcv/releases
    >> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html
    https://download.openmmlab.com/mmcv/dist/index.html
    https://www.zywvvd.com/2021/04/20/deep_learning/windows-mmcv-1-2-7-install/windows-mmcv-1-2-7-install/

      

    conda remove -n your_env_name(虚拟环境名称) --all
    conda remove --name your_env_name package_name(包名)

    python
    import torch
    print(torch.__version__)

    jupyter 创建基于pytorch这个虚拟环境的文件

    conda install ipykernel

    python -m ipykernel install --user --name pytorch --display-name "pytorch"

    jupyter notebook --generate-config
    打开该文件,找到notebook_dir,
    将#c.NotebookApp.notebook_dir = ''改为:前面的注释#要去掉。
    c.NotebookApp.notebook_dir = 'C:\Users\liufe\Desktop\Jupyter Projects'

    测试tensorflow-gpu是否可用

    import tensorflow as tf
    import timeit
    
    with tf.device('/cpu:0'):
        cpu_a = tf.random.normal([10000, 100])
        cpu_b = tf.random.normal([100, 2000])
        print(cpu_a.device, cpu_b.device)
    
    with tf.device('/gpu:0'):
        gpu_a = tf.random.normal([10000, 100])
        gpu_b = tf.random.normal([100, 2000])
        print(gpu_a.device, gpu_b.device)
    
    def cpu_run():
        with tf.device('/cpu:0'):
            c = tf.matmul(cpu_a, cpu_b)
        return c
    
    def gpu_run():
        with tf.device('/gpu:0'):
            c = tf.matmul(gpu_a, gpu_b)
        return c
    
    # warm up	这里就当是先给gpu热热身了
    cpu_time = timeit.timeit(cpu_run, number=10)
    gpu_time = timeit.timeit(gpu_run, number=10)
    print('warmup:', cpu_time, gpu_time)
    
    
    cpu_time = timeit.timeit(cpu_run, number=10)
    gpu_time = timeit.timeit(gpu_run, number=10)
    print('run time:', cpu_time, gpu_time)
    

      

    参考:

    anaconda安装pytorch, cuda版本10.2,cudnn版本10.2-windows10-x64-v8.0.3.33

    python虚拟环境迁移

     

  • 相关阅读:
    Storm监控文件夹变化 统计文件单词数量
    Storm默认配置 default.yaml
    Storm集群搭建
    Storm概念
    zookeeper安装
    zookeeper
    zookeeper应用
    zookeeper应用
    zookeeper应用
    HDU 3473 Minimum Sum (划分树求区间第k大带求和)(转)
  • 原文地址:https://www.cnblogs.com/iupoint/p/14707425.html
Copyright © 2011-2022 走看看