当前位置: 首页 > news >正文

AI部署001 - C++环境部署与服务器使用

AI部署001 - C++环境部署与服务器使用

1. 前言

​ 学习AI的必经路线之一,AI模型的部署,当我们训练完模型后,想要把模型部署到我们的系统中,一般就需要考虑这个环节了。

​ 对于常用的英伟达GPU,最常用的就是C++的TensorRT,因此这里也附上我自己的学习笔记。

本节内容

  • 服务器的选择
  • C++环境的部署

目录

文章目录

    • AI部署001 - C++环境部署与服务器使用
      • 1. 前言
      • 2. 服务器选择和使用
      • 3. VSCode本地与服务器配置
        • 3.1 VSCode安装
        • 3.2 本地VSCode配置
        • 3.3 SSH连接服务器
        • 3.4 配置远程服务器的VSCode环境
      • 4. Python使用
        • 4.1 确保python可以正常运行
        • 4.2 debug配置
        • 4.3 debug报错解决
      • 5. windows下配置C++
        • 5.1 安装mingw
        • 5.2 安装g++
        • 5.3 配置环境变量
        • 5.4 测试是否安装成功
      • 6. C++配置
        • 6.1 测试C++正常运行
        • 6.2 调试C++
      • 7. 总结

2. 服务器选择和使用

​ 这里采用的服务器是云服务器,平台选择的是:AutoDL,官网:https://www.autodl.com/home。

​ 介绍一下,如何使用:

  1. 地区可以任意选择,然后选择GPU型号和GPU数量,这里由于是新手尝试C++,所以都选择最差的即可,比如10系列的GPU或者20系列的GPU:

在这里插入图片描述

  1. 比如,我这里选择北京地区 - 20系列的GPU,数量为1
  2. 然后,点击“1卡可租”的按钮,进入租赁协议
  3. 我们选择基础镜像即可,可以看到基础镜像也包好了必备的miniconda、深度学习框架等等,另外,我们也可以定制,比如选择pytorch1.8版本的Ubuntu系统:

在这里插入图片描述

  1. 然后点击创建并开机即可(记得账号内得有余额才行

  2. 然后你就可以看到登录系统的SSH指令和密码

在这里插入图片描述

因为前期我们都用不到GPU,因此可以选择无卡模式启动,这样更省钱,一小时只要一毛钱:

在这里插入图片描述

3. VSCode本地与服务器配置

3.1 VSCode安装

​ 这一部直接跳过,在自己电脑安装VSCode非常简单,如果不知道如何安装,可以在CSDN论坛百度搜索,非常详细。

3.2 本地VSCode配置

​ 需要配置三个:

  • Python
  • C++
  • SSH

​ 打开VSCode,找到拓展插件部分,直接搜索python、C++、SSH,然后安装即可,以SSH安装为例子:
在这里插入图片描述

​ 安装完毕后,建议重启下软件即可。

​ 然后通过已安装那里,检测自己是否安装完成:

在这里插入图片描述

3.3 SSH连接服务器

​ 在VSCode左下角找到远程连接,点击:

在这里插入图片描述

​ 然后在弹出的窗口,输入我们服务器给我们的ssh指令,回车:

在这里插入图片描述

​ 然后,在新弹出的窗口,输入我们的密码:

在这里插入图片描述

​ 即可连接成功,如下所示:

在这里插入图片描述

3.4 配置远程服务器的VSCode环境

​ 上面我们只部署了本地VSCode的环境,这里我们需要重新走一遍上面的流程,进行部署。

​ 首先,你可以点开拓展,查看的确没有安装C++之类的:

在这里插入图片描述

​ 因此,我们需要相同配置服务器,不过这里我们只安装:

  • Python
  • C++

​ 流程和上面一样,非常简单。

4. Python使用

4.1 确保python可以正常运行

​ 通过VSCode的可视化界面,选择Linux中的一个文件夹,然后在里面创建一个demo.py的测试文件,如下:

在这里插入图片描述

因为服务器自带conda,我们可以创建一个新的虚拟环境,然后运行我们的代码:

conda create --name test
conda activate test
python demo.py

​ 不会使用conda的可以看我主页的anaconda的使用教程,很基础。

​ 结果如下:

在这里插入图片描述

​ 如果遇到报错:IMPORTANT: You may need to close and restart your shell after running ‘conda init’.

​ 使用下面指令解决:(因为没有正确退出环境)

source activate
conda deactivate
4.2 debug配置

​ 点击左侧的运行和调试:

在这里插入图片描述

​ VSCode调试代码,需要创建一个.json文件,不过不用担心,点击这个,然后勾选python File,即可自动创建这个json文件,如果不感兴趣,里面的相关参数可以不用研究,如果感兴趣,直接百度相关参数即可:

在这里插入图片描述

​ 然后,就可以正常调试了,给程序打上断点,然后启用调试即可,如下:

在这里插入图片描述

4.3 debug报错解决

​ 我遇到的错误是,说python版本过低,此时,可以如下操作:

  1. 在vscode下按下键盘:ctrl + shift + p
  2. 然后输入:Python: Select Interpreter
  3. 重新选择一个python解释器,建议选择python3.9以上的版本
  4. 这个时候在尝试debug就成功了,如下图演示:

在这里插入图片描述

5. windows下配置C++

5.1 安装mingw

​ 下载地址:https://sourceforge.net/projects/mingw/。

​ 这是一个包管理器,安装非常容易,这个非常小,可以直接默认安装:

​ 安装完成后,弹出下面的界面说明安装成功:

在这里插入图片描述

5.2 安装g++

​ 在上面的界面中,找到mingw32-gcc-g++、等安装完成后,再打开这个软件,安装一下mingw32-gdb.bin,注意Class是bin的(后面调试需要它)

在这里插入图片描述

​ 然后,点击左上角的Installation菜单中的Apply changes选项,然后管理器将开始在线安装或更新被选中的组件。

​ 等待安装完成即可

5.3 配置环境变量

​ 找到环境变量,可以是系统变量,也可以是用户变量,都可以:

​ 把我们刚刚MinGW的路径加入其中,如果是默认的话,就在C盘:

在这里插入图片描述

5.4 测试是否安装成功

​ 打开cmd,输入g++ -v或者gcc -v,如果显示下图说明成功安装:

在这里插入图片描述

6. C++配置

6.1 测试C++正常运行

​ 先创建一个C++文件,比如demo.cpp,写下下面代码:

#include <iostream>
using namespace std;int main(){// 计算 1+2+3+4+5int sum {0};for (int i {0}; i < 5; i++)sum += i;// 输出结果cout <<  sum << endl;return 0;}

​ C++是编译型语言,需要先编译,然后执行编译后的文件:

g++ demo.cpp -o demo
# 执行cpp,输出到demo,注意我这是在Ubuntu系统下的,因此g++编译器已经有了
./demo 
# 运行demo,返回结果

在这里插入图片描述

6.2 调试C++

​ 我们前面不是已经配置了python嘛,它会在目录中生成一个.vscode/launch.json的文件,这个就是配置文件,我们打开它,然后点击右下角的”添加配置“,选择C++即可:

在这里插入图片描述

​ 默认生成的配置文件,并不能直接使用,我们需要自己配置,最主要的是输入程序名字:

​ 这里我建议大家直接拷贝我整理好的,可以直接使用的调试文件:

使用方法

  1. 新建一个名为.vscode的文件夹
  2. 在其下创建三个json文件,分别名为:
  • launch.json
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}/release/${fileBasenameNoExtension}",  // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀"args": [],"stopAtEntry": false,"cwd": "${fileDirname}", // 文件所在的文件夹路径"environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description":  "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"preLaunchTask": "C/C++: g++ 生成活动文件" // tasks.json的label},{"name": "Python: Current File","type": "python","request": "launch","program": "${file}", // 当前文件// "program": "demo.py", // 指定文件"console": "integratedTerminal","justMyCode": true // false表示可以进入第三方库(如Pytorch)里进行调试}]
}
  • settings.json
{"files.associations": {"iostream": "cpp","ostream": "cpp","array": "cpp","atomic": "cpp","*.tcc": "cpp","cctype": "cpp","clocale": "cpp","cmath": "cpp","cstdarg": "cpp","cstddef": "cpp","cstdint": "cpp","cstdio": "cpp","cstdlib": "cpp","cwchar": "cpp","cwctype": "cpp","deque": "cpp","unordered_map": "cpp","vector": "cpp","exception": "cpp","algorithm": "cpp","functional": "cpp","iterator": "cpp","memory": "cpp","memory_resource": "cpp","numeric": "cpp","optional": "cpp","random": "cpp","string": "cpp","string_view": "cpp","system_error": "cpp","tuple": "cpp","type_traits": "cpp","utility": "cpp","fstream": "cpp","initializer_list": "cpp","iosfwd": "cpp","istream": "cpp","limits": "cpp","new": "cpp","sstream": "cpp","stdexcept": "cpp","streambuf": "cpp","typeinfo": "cpp","bit": "cpp"}
}
  • tasks.json
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++ 生成活动文件","command": "C:/MinGW/bin/g++", // g++的路径"args": ["-fdiagnostics-color=always", // 颜色"-g",  // 调试信息"-Wall", // 开启所有警告"-std=c++14", // c++14标准"${file}", // 文件本身,仅适用于演示,无法同时编译所有文件// "${fileDirname}/*.cpp", // 文件所在的文件夹路径下所有cpp文件"-o", // 输出"${workspaceFolder}/release/${fileBasenameNoExtension}" // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀],"options": {"cwd": "${fileDirname}" // 文件所在的文件夹路径},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "编译器: C:/MinGW/bin/g++"}]
}

​ 完成后,就可以对代码进行调试,它会把自动生成exe文件在一个名为releases的文件夹下,如下:

在这里插入图片描述

7. 总结

​ 本节主要学习了C++的环境部署,因为C++一般都在Ubuntu上开发,因此还学习了远程服务器的选择与使用,还有vscode如何调试代码、如何远程连接Ubuntu等内容。

​ 下一节的内容:速通C++基础知识。

http://www.dtcms.com/a/495043.html

相关文章:

  • MP4格式视频无法播放怎么修?4个修复方法,解决难题
  • 语音处理:音频移形幻影,为何大振幅信号也无声
  • dedecms学校网站模板wordpress 3d插件
  • 注册一个新公司需要多少钱seo如何进行优化
  • Git流程规范介绍
  • Python 第十五节 OS文件操作相关方法用途详解
  • 动态规划的“递归之舞”:破解字符串的深层结构——扰乱字符串
  • 淮北市做网站最好的公司上海网站搭建平台公司
  • 网站域名设计推荐新华网海南频道
  • InternVL3.5多模态多大模型改进点及视觉分辨率路由模块技术浅尝
  • 人工智能基础知识笔记十八:Prompt Engineering
  • 深入理解Shell与反弹Shell:从原理到实战
  • LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
  • EvalScope模型压力测试实战
  • 极速网站建设服务商厦门网站建设网络推广
  • 新建网站如何调试网页设计公司的调研
  • 模拟oracle 索引平衡树叶子节点
  • Android 内存优化
  • Java JVM “垃圾回收(GC)”面试清单(含超通俗生活案例与深度理解)
  • Python快速落地的临床知识问答与检索项目(2025年9月教学实现部分)
  • 从0到1掌握Spring Boot自动配置:自定义配置实战指南
  • 索引设计速查:哪些字段该建索引?哪些不能建?
  • 自己的主机做网站服务器小树建站平台
  • 英集芯-IP5385开发调试总结
  • ProfiNet转EtherNet/IP工业PLC网关:打通仓储PLC与机器人通讯链路
  • Linux C/C++ 学习日记(27):KCP协议(三):代码结构分析与使用示例
  • 系统移植篇之uboot-5:DDR内存
  • 新开传奇网站刚开上海软件开发公司排名
  • C语言之可变参函数
  • Centos 7 环境下mysql的安装及配置