需要了解的概念
SSH:SSH 代表 Secure Shell 或 Secure Socket Shell。它是一种加密系统协议,使两台计算机能够通过包括 Internet 在内的不安全网络连接并发送数据。它可以登录远程服务器,实现从一台设备到另一台设备的命令和数据传输。
SSH 协议由 SSH 通信安全有限公司建立,用于安全连接远程设备。安全通信支持强大的密码验证和通过不安全介质使用公钥的加密连接。可以恢复不受保护的远程登录协议,包括Telnet、rlogin、rsh等,以及不安全的文件传输协议FTP。
SFTP:使用SSH协议进行FTP传输的协议叫SFTP(安全文件传输)。它支持通过 SSH 进行安全文件传输,以支持访问远程 SFTP 服务器上的所有 shell 帐户。SSH 是一种用于通过不可信网络安全远程访问设备的协议。SSH 是对 telnet、rsh、rlogin 的恢复。SFTP 检查用户的身份,一旦创建安全连接,数据就会更改。
该协议的特点是命令可以流水线化,响应可以是任意系列的。这可以定义会话分配的等待响应的时间更少,并且有空间来优化来自具有多种速度数据源的一台服务器的并发传输。
PUTTY是一个Windows平台下的SSH客户端程序,支持SFTP。
提前预下载软件:Pycharm专业版,putty,xftp 7(可选择下载)
Pycharm必须是专业版,社区版不可以。
Putty下载网址:
Download PuTTY: latest release (0.76)
输入IP地址和端口号打开:
xftp下载网址:
Xftp Free Download (2022 Latest)
可选择下载xftp ,传输文件更快,可视化文件夹
页面
开始在win10中pycharm专业版远程操作Linux18.04服务器:
方法一:
File=>setting=>Python interpreter=>SSH interpreter=>New server configuration=>(输入ip地址和用户名)Next=>(添加使用python地址和映射地址)Finish
如果是已经存在了的,设置好远程Python解释器之后,PyCharm会自动显示出云服务器已经安装的Python包的信息,此时先点击Apply 进行应用,再点击OK。
增加挂载的帐号和密码
成功后
然后
Script path框是win10本地项目地址
Python interpreter框是挂载的服务器环境
(一般是默认的,没有的话菜单中点击Tools=>Deployment,勾选Automatic Upload (always),然后项目会自动上传到服务器.
可以在file transfer看到文件传输过程。
等待项目上传后运行。
方法二:
利用putty登录linux服务器
下载xftx7,将自己的项目打包,传送到linux服务器上.
用terminal解压,并运行。
过程中遇到的问题:
在配置项目文件的环境时,Ubuntu18.04下载了2.7、3.6的python
使用python/pip指令默认是2.7
使用python3/pip3,默认是3.6
配置环境
cuda 版本问题(nvcc-v和nvidia-smi出现的版本不同)
cuda nvcc-v时
sudo apt-get autoremove nvidia-cuda-toolkit
卸载(nvcc-v中出现的cuda版本)9.1cuda
卸载之后使用$nvcc -V提示没有这个文件,即卸载成功。
为cuda11.6建立软链接:
sudo rm -rf /usr/local/cuda # 删除之前创建的软链接
sudo ln -s /usr/local/cuda-11.6 /usr/local/cuda # 建立新的软链接(制定链接版本为11.6)
#使用指令$ sudo vim ~/.bashrc进入该文件,写入如下指令段
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
#提示:键盘上Insert键进行写入,Delete键删除、
#esc退出编辑,再输入:wq保存并退出
输入$ source ~/.bashrc保存并退出文件,使环境变量生效
Nvcc-v 结果为11.6.和nvidia-smi.一致。
nvcc -v & nvidia-smi 的区别
CUDA有两种API:
一个是驱动API(Driver Version),依赖NVIDIA驱动,由nvidia-smi查看,nvidia-smi 的结果除了有GPU驱动版本型号,还有CUDA Driver API的型号;
另一个是运行API(Runtime Version)是软件运行所需要的。
一般驱动API版本>=运行API版本即可。
遇到两者不一致问题,需要确定版本是否兼容。如果不兼容,解决方案是更改Runtime API,具体方法是安装对应Driver API版本的cuda.
之前下载cuda,忘记下载cudnn.项目会卡着不出结果,不会报错。
进入cuDNN官网,首先需要登录或注册NVIDIA账户,成为开发者,官网:https://developer.nvidia.com/cudnn.然后官方有安装教程。(官方网站,实测官方给出的简单明了)
网址:
Installation Guide :: NVIDIA Deep Learning cuDNN Documentation
检测cudnn是否装好
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 3
#因为版本是8.3.3.所以后面是3。如果是8.2的,那么是
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
(如果没有把输入后面改为3的话,什么都不输出。)
运行pycharm里项目文件
项目完全上传后,可以直接在pycharm上运行。
最后,在win10上可视化,ubuntu上运行啦!!!
总结:
要理解Linux项目的作用
/bin:存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里
/etc:存放系统管理和配置文件
/home:存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示。
/usr:用于存放系统应用程序,比较重要的目录/usr/local 本地系统
/lib:存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。