第一问:什么是conda?
答:简单来说吧conda就是一个辅助进行包管理和环境管理的工具,目前是anaconda默认的python包和环境管理工具,所以说只要你安装了anaconda,就默认你安装了conda。Conda既有pip的包管理功能,又有vitualenv的环境管理功能,所以可以简单看做是二者的结合。
参考文章链接:https://blog.csdn.net/zhanghai4155/article/details/104215198
那什么是vitualenv呢?概括地说,vitualenv就是创建虚拟环境的一个工具。因为在我们的电脑上我们可能会运行不同的项目,但是不同的项目所需的依赖版本可能不同,这样就会造成依赖冲突。而vitualenv通过创建虚拟化的python运行环境,将我们每个项目所需的依赖安装进去,这样不同项目之间就不会相互干扰了。
参考文章链接:https://blog.csdn.net/u012206617/article/details/90294421
第二问:说说conda常用的命令有哪些吧?
1. Conda –version 或者 conda -V #查看conda版本,验证是否安装
2. Conda updata conda #更新至最新版本,也会更新其他相关包
3. Conda update --all #更新所有包
4. Conda updata package_name #更新指定的包
5. Conda create -n env_name package_name #创建名为env_name的新环境,并在该环境下装名为package_name的包。
6. Conda create -n python2 python=python2.7 numpy pandas #创建了名为python2的新环境,python的版本号是2.7,同时还安装了numpy和pandas的包。
7. activate env_name #切换至名为env_name的环境 (如果是os或者linux系统命令前边加source)
8. deactivate #退出当前环境 (如果是os或者linux系统命令前边加source)
9. Conda info -e #显示所有已经创建的环境
10. Conda create –name new_env_name –clone old_env_name #复制名为old_env_name的环境为一个新环境并命名为new_env_name
11. Conda remove --name env_name -all #删除环境
12. Conda list #查看所有已经安装的包
13. Conda install package_name #在当前环境中安装包
14. Conda install –name env_name package #在指定环境中安装包
15. Conda remove --name env_name package #删除指定环境中的包
16. Conda remove package #删除当前环境里的包
17. Conda create -n tensorflow_env tensorflow conda activate tensorflow_env #conda安装TensorFlow的CPU版本
18. Conda create -n tensorflow_gpuenv tensorflow-gpu conda activate tensorflow_gpuenv tensorflow-gpu conda activate tensorflow_gpuenv #conda安装TensorFlow的GPU版本
19. 采用conda remove --name env_name失败时,可以采用conda env remove -n env_name这种方法删除
参考文章链接有:https://zhuanlan.zhihu.com/p/67745160
https://blog.csdn.net/menc15/article/details/71477949/
第三问:什么是CUDA?
答:CUDA(compute unified device
architecture),是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能解决复杂的计算问题。它包含了CUDA指令级架构(ISA)以及GPU内部的并行计算引擎。
第四问:什么是cuDNN?
答:NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA
cuDNN可以集成到更高级别的机器学习框架中,如Google的TensorFlow、caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
第五问:CUDA和cuDNN是什么关系?
答:CUDA可以看做是一个工作台,它上面有很多的工具,如锤子、螺丝刀等等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。
它就相当于工作时使用的工具,比如说是一个扳手,但是我们买来CUDA这个工作台的时候商家并没有送给我们扳手。而想要在CUDA上运行深度神经网络,就要安装cuDNN,这样也就相当于你想要在你的工作台上拧个螺丝帽必须要用扳手一样。这样才能够顺利的进行深度神经网络的工作,工作速度相较于CPU快很多。
cuDNN所谓的插入式设计就是把自身的文件复制到CUDA的对应文件里即可。这样也就是把cuDNN数据库添加到CUDA里,cuDNN就是CUDA的扩展计算库,不会对CUDA造成其他的影响。而卸载cuDNN也只需要把相关文件删除就可以了。指令如下:/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* ``` 参考文章链接:`https://www.jianshu.com/p/622f47f94784`
第六问:cpu、CUDA、显卡、显卡驱动的关系?
答:计算机需要一套软件来让CPU操作GPU,这套软件程序就叫做显卡驱动。随着GPU计算能力的发展,越来越多的计算场景由GPU完成效果会更好。但是现有的程序无法直接自由控制GPU的处理器。因此,英伟达为了把自家产品的性能发挥到最高就提供了一套软件接口来简化操作GPU的处理器。英伟达把这一套软件定义为CUDA(compute
unified device
architecture,统一计算架构)。通俗的来说就是英伟达开发了一套软件来方便程序员直接操控自家的显示芯片。
参考文章链接:https://www.zhihu.com/question/59184480/answer/1217761425