当前位置: 首页 > 网络应用技术

GPU服务器初始体验:构建Pytorch GPU开发环境

时间:2023-03-06 00:28:29 网络应用技术

  目前,云服务制造商已出售GPU云服务器,例如Tencent Cloud和Alibaba Cloud。以Tencent Cloud为例,请登录此网站:https://cloud.tencent.com/product/gpu单击[立即购买]输入选举以输入ElectionPurchase.EAK模型对应于不同的规格。图形卡模型与相同的模型相同(例如GN7)。在此模型下,不同的规格(例如GN7.LARGE20,GN7.2XLARGE32)在CPU,内存,带宽和图形卡方面有所不同):|模型|图形卡||---- |--- ||特斯拉P4 |gn6s |特斯拉P4 ||gn7 | nvidia t4 ||Gn8 |特斯拉P40 ||gn10x |特斯拉V100 ||gn10xp |特斯拉V100 |gi3x |nvidia t4 |GT4 |nvidia a100 |GI1 |英特尔SG1加速卡|

  我们忽略了英特尔,其余的图形卡是nvidia。这也表明,黄伦Xun在机器学习时代赚了很多钱。

  GeForce系列的GeForce系列中没有图形卡。因为GeForce系列是桌面(笔记本/桌面)图形卡,而图形卡是服务器的图形卡(数据中心/工作站)。它就像CPU一样在我们的个人计算机上是Intel Core系列,公司服务器上的CPU是Intel Xeon系列。

  当然,服务器上的这些图形卡必须比桌面侧的图形卡更好。具体而言,这取决于计算能力。可以在NVIDIA的官方网站上找到图形卡的计算能力信息:https://developer.nvidia.com/cuda-gpus

  我的图形卡是特斯拉P4,计算能力为6.1

  好吧,让我们跳过服务器购买的具体详细信息。实际上,此步骤的最大障碍不是计算能力,而是金钱也是云服务器初始化的步骤。与普通的云服务器没有区别。他们选择一个Linux,然后初始化一些配置。

  此外,如果您不购买云服务器,而是配备了n个卡的个人计算机,则以下内容也适用于您。

  尽管新的GPU服务器具有图形卡,但它不受图形卡驱动。我们需要在此处手动安装。首先访问NVIDIA官方网站以下载驱动程序:

  https://www.nvidia.cn/download/index.aspx?lang=cn

  主要根据您的系统类型和图形卡模型(产品系列和产品系列)选择:

  点击[搜索]

  点击[下载]

  您在此步骤中无需单击[下载],因为我们为云服务器(或您的本地Linux虚拟机)安装图形卡。然后运行:

  执行后,它将开始安装。在此期间,它可能会收到一个提示:GCC版本(例如GCC8.5)和GCC版本(例如GCC8.4)编译内核(例如GCC8.4)不一致。如果版本编号不是非常不同,它将被忽略,否则可能需要重新安装具有相同版本的GCC编译器。

  如何确认执行完成后可以确认驱动程序的安装?我们可以执行此命令。

  输出如下:

  它可以表明信息正在驱动。

  第二部分是空线的第二行。这是图形卡的新形式。===此行是上面的标题,下面的表数据。这里只有一张图形卡。如果有多个图形卡,下面将添加几行。在上图的第二部分中,我将更好地理解它:|物种|数据|含义||--- |--- |--- |GPU |0 |图形卡ID,从0计数||风扇|N/A |粉丝动机||名称|特斯拉P4 |图形卡模型||温度|35c |温度||perf |P0 |性能水平,从大到小P0?P12 |持久性m |关闭|是否是连续模式||PWR:用法/上限|21W/75W |能源消耗|BUS-ID |00000000:00:08.0 |GPU总线ID |ape.a |关闭|失败活动,是否初始化GPU显示|记忆 - 使用|0MIB/7680 MIB |陈旧率|挥发性gpu-util |0 |GPU利用率|不ECC |0 |ECC,错误检查和校正|计算m。|默认|计算模式|mig m。|N/A |MIG模式

  持久性M(连续模式)将在打开后增加能耗,但是新GPU程序的耗时时间将减少。如果其状态不在,您可以使用此命令打开:

  请注意,内存使用和GPU-UTIL(GPU利用率)不需要连接。这就像内存使用情况和CPU的使用率不一定连接!

  MIG M.是一个相对较新的数据。没有关于NVIDIA-SMI的旧版本的信息。对于我们来说,您不需要特别注意。如果您感兴趣

  NVIDIA-SMI的第三部分最好了解GPU的过程信息目前已使用。由于我们尚未使用GPU运行程序,这是空的:|设置|含义|--- |--- |GPU |图形卡ID |pid |进程ID |类型|type.c:计算过程,G:图形过程,C+G:计算和图形既proces name |过程名称|GPU内存使用|流程图形卡使用率使用率

  GI ID和CI ID尚未找到信息。这也是NVIDIA-SMI的新版本。旧版本不可用。

  说到机器学习,自然的python是不可或缺的。有GUI,更方便地拥有各种操作。但是无需在云服务器上安装Anaconda,只需安装图形接口Miniconda。地址如下:

  https://docs.conda.io/en/laatest/miniconda.html

  使用正确的-Click复制下载地址,然后在服务器上下载并执行:

  这也完成了安装,然后加载环境变量。例如:

  或者

  您可以将国内资源添加到Conda中以加快下载速度。

  接下来,我们必须运行pytorch程序,因此请使用conda创建环境,名称是任意的,我的名字是pytorch_gpu

  目前是一个空置的环境,我还没有安装Pytorch

  执行以下命令安装Pytorch及其依赖环境:

  实际的CUDA为11.6,但是Pytorch目前(2022年5月)为11.3.应该可以动态调整合适的版本。org/get-Started/局部/选择相应的环境以生成相应的命令。

  但是官方网站上还有另一个conda命令。-C是指定Conda频道的含义。这是一个指定Pytorch的频道,但是此频道下载太慢。

  conda命令完成执行并测试安装是否成功。您可以编写以下Python脚本执行,或直接打开Python Interactive命令:

  导入可以成功并返回第二行代码。它意味着安装成功,并且是Pytorch的GPU版本。

  由于我不是机器学习的专家,因此我决定找到可以直接在线使用的Pytorch培训模型的代码。在这里,我选择了BERT模型。BERT模型是Google提出的NLP字段中的经典模型。这些背景知识在这里没有扩展。

  经过简单的搜索,我在GitHub上找到了这个高级Pytorch Bert与BERT相关的项目

  将项目克隆放置,然后下载数据所需的数据文件:一个是预训练的Pytorch模型文件bert-base-chinese.tar.gz,另一个是字典文件bert-base-base-chinese-vocab。文本。

  在解压缩模型文件后,实际获得了两个文件,一个是二进制模型文件本身pytorch_model.bin,另一个是模型配置文件bert_config.json.json.both,将其复制到项目的bert_pretratain目录。被重命名为vocab.txt,也被放置在bert_pretratain目录中。

  在正式使用之前,我们在环境中安装了一些依赖的库:

  pytorch_pretratained_bert我使用了PIP安装,因为我没有在conda中找到相应的软件包。

  然后创建一个目录:

  BERT模型的培训过程通常分为预训练(预训练)+细节。我们下载的模型已经是预培训模型,但它不是最终模型,并且需要继续培训,也就是说,很好-tuning.run脚本并开始培训:

  这步骤实际上非常慢。原始作者说,他的2080TI图形卡将运行20分钟。2080TI是台式机上的图形卡。查看前面提到的网站,您可以看到2080TI的计算能力为7.5,高于我的云服务器的Tesla P4 ...

  目前,我们可以再次执行命令以检查:

  可以发现,流程信息的第三部分不再为空。您可以使用GPU查看其PID为309535的过程。该过程名称为Python占6939MB。总内存使用为6941MB。两个几乎相同。

  最终,我在云服务器上跑了75分钟...很好。

  执行上述脚本完成后,将培训最终模型以将其保存在Thucnews/saved_dict/bert.ckpt.next中,我们尝试将此模型用于预测。在原始项目中,作者没有一个封装预测代码,但我们可以从项目ISUE中找到其他人共享的预测代码。例如:https://github.com/649453932/bert-chinese-chinese-chinese-chinese-text-classification-plassification-plassification-pytorch/issues/72

  复制代码并将其保存到pred.py.in中

  RuntimeError:期望所有张力量都在同一设备上,但至少找到了两个设备CUDA:0和CPU!

  还请参考问题中其他网络提供的其他网络。修改IDS的代码,令牌,蒙版,buden_predict_text()方法,加上.cuda()您可以:cuda()。

  由于培训模型中使用的数据集是新闻及其分类,因此该模型的预测功能是对新闻进行分类。现在,我们找到了最新的新闻来进行预测。

  在热门搜索中找到新闻:[[兰州野生动物园旅游车辆新进度:救援后2人死亡]新闻时间是2022年5月2日。用于模型培训的数据集是2019年,因此一定不能确定包括此新闻。

  大米我们的pred.py以获得结果:

  社会

  也就是说,社会新闻仍然准确。