cuda和cudnn是什么
一、總結
一句話總結:
CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平台。 CUDA是一種由NVIDIA推出的通用並行計算架構,該架構使GPU能夠解決復雜的計算問題。
NVIDIA cuDNN是用於深度神經網絡的GPU加速庫。cuDNN是基於CUDA的深度學習GPU加速庫,有了它才能在GPU上完成深度學習的計算。
1、什么是CUDA?
CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平台。 CUDA是一種由NVIDIA推出的通用並行計算架構,該架構使GPU能夠解決復雜的計算問題。
2、什么是CUDNN?
(A)、NVIDIA cuDNN是用於深度神經網絡的GPU加速庫。它強調性能、易用性和低內存開銷。
(B)、NVIDIA cuDNN可以集成到更高級別的機器學習框架中,如谷歌的Tensorflow、加州大學伯克利分校的流行caffe軟件。
(C)、簡單的插入式設計可以讓開發人員專注於設計和實現神經網絡模型,而不是簡單調整性能,同時還可以在GPU上實現高性能現代並行計算。
3、CUDA與CUDNN的關系?
(1)、CUDA看作是一個工作台,上面配有很多工具,如錘子、螺絲刀等。
(2)、cuDNN是基於CUDA的深度學習GPU加速庫,有了它才能在GPU上完成深度學習的計算。它就相當於工作的工具,比如它就是個扳手。但是CUDA這個工作台買來的時候,並沒有送扳手。
(3)、想要在CUDA上運行深度神經網絡,就要安裝cuDNN,就像你想要擰個螺帽就要把扳手買回來。這樣才能使GPU進行深度神經網絡的工作,工作速度相較CPU快很多。
4、CUDNN不會對CUDA造成影響?
從官方安裝指南可以看出,只要把cuDNN文件復制到CUDA的對應文件夾里就可以,即是所謂插入式設計,把cuDNN數據庫添加CUDA里,cuDNN是CUDA的擴展計算庫,不會對CUDA造成其他影響。
二、cuda和cudnn是什么
轉自或參考:CUDA與cuDNN
https://www.jianshu.com/p/622f47f94784
1、什么是CUDA
CUDA(ComputeUnified Device Architecture),是顯卡廠商NVIDIA推出的運算平台。 CUDA是一種由NVIDIA推出的通用並行計算架構,該架構使GPU能夠解決復雜的計算問題。
2、什么是CUDNN
NVIDIA cuDNN是用於深度神經網絡的GPU加速庫。它強調性能、易用性和低內存開銷。NVIDIA cuDNN可以集成到更高級別的機器學習框架中,如谷歌的Tensorflow、加州大學伯克利分校的流行caffe軟件。簡單的插入式設計可以讓開發人員專注於設計和實現神經網絡模型,而不是簡單調整性能,同時還可以在GPU上實現高性能現代並行計算。
3、CUDA與CUDNN的關系
CUDA看作是一個工作台,上面配有很多工具,如錘子、螺絲刀等。cuDNN是基於CUDA的深度學習GPU加速庫,有了它才能在GPU上完成深度學習的計算。它就相當於工作的工具,比如它就是個扳手。但是CUDA這個工作台買來的時候,並沒有送扳手。想要在CUDA上運行深度神經網絡,就要安裝cuDNN,就像你想要擰個螺帽就要把扳手買回來。這樣才能使GPU進行深度神經網絡的工作,工作速度相較CPU快很多。
4、CUDNN不會對CUDA造成影響
官方Linux安裝指南表述:
從官方安裝指南可以看出,只要把cuDNN文件復制到CUDA的對應文件夾里就可以,即是所謂插入式設計,把cuDNN數據庫添加CUDA里,cuDNN是CUDA的擴展計算庫,不會對CUDA造成其他影響。
cuDNN的安裝文件有兩個文件夾,共五個文件,如下
CUDA平台里對應文件夾的文件,如下

可以看到,CUDA已有的文件與cuDNN沒有相同的文件,復制CUDNN的文件后,CUDA里的文件並不會被覆蓋,CUDA其他文件並不會受影響。
5、Linux下CUDNN的安裝
在服務器上共安裝了三個不同版本的CUDA,並不知道哪個能正常調用,所以需要安裝三個不同版本的cuDNN。
cuDNN的文件已經放入服務器我的文件夾下
linu命令如下:如果不行,就全部去掉sudo。
cp 是復制,chmod是給與文件可讀權限,使這個文件可以讀取,rm 是刪除文件
(1)
sudo cp /public/home/qliang/lyr/ysl/cudnn9.1/cuda/include/cudnn.h /usr/local/cuda-9.1/include
sudo cp /public/home/qliang/lyr/ysl/cudnn9.1/cuda/include/libcudnn* /usr/local/cuda-9.1/lib64
sudo chmod a+r /usr/local/cuda-9.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.1/lib64/libcudnn*
(2)
sudo cp /public/home/qliang/lyr/ysl/cudnn9.1/cuda/include/cudnn.h /public/software/cuda-9.1/include
sudo cp /public/home/qliang/lyr/ysl/cudnn9.1/cuda/lib64/libcudnn* /public/software/cuda-9.1/lib64
sudo chmod a+r /public/software/cuda-9.1/include/cudnn.h
sudo chmod a+r /public/software/cuda-9.1lib64/libcudnn*
(3)
sudo cp /public/home/qliang/lyr/ysl/cudnn10/cuda/include/cudnn.h/ usr/local/cuda-9.1/include
sudo cp /public/home/qliang/lyr/ysl/cudnn10/cuda/lib64/libcudnn* /usr/local/cuda-9.1/lib64
sudo chmod a+r /public/software/cuda-10.0/include/cudnn.h
sudo chmod a+r /public/software/cuda-10.0/lib64/libcudnn*
7、卸載cuDNN
因為是插入式設計,cuDNN的卸載也非常簡單,只需要把相關文件刪除就可以了。指令如下:
rm –rf /usr/local/cuda-9.1/include/cudnn.h
rm –rf /usr/local/cuda-9.1/lib64/libcudnn*
rm –rf /public/software/cuda-9.1/include/cudnn.h
rm –rf /public/software/cuda-9.1/lib64/libcudnn*
rm –rf /public/software/cuda-10.0/include/cudnn.h
rm –rf /public/software/cuda-10.0/lib64/libcudnn*