FasterTransformer在linux系统中的安装教程(ubuntu系统)

2023-09-18 11:39:49

参考资料

安装过程

  • 在官方文档中,其对安装流程已经表述的比较详细,主要是安装nvidia-docker和安装编译FasterTransformer。其中难点主要是在安装nvidia-docker上。
  • 当然其实也可以不安装nvidia-docker,直接使用配置好的cuda环境配置,但是这样的话我们就无法使用docker来配置环境,因此配置不好会污染环境,最好是使用docker安装环境,例如使用docker安装pytorch,在pytorch的镜像中安装FasterTransformer,编译出针对pytorch的FasterTransformer。因为FasterTransformer需要使用cuda调GPU,因此需要再容器中调用GPU,即配置好驱动环境,这在使用普通的docker是不能实现的。例如,我们可以随便进入一个容器,执行nvidia-smi看看能否识别出GPU设备。而安装nvidia-docker就是为了在容器中有GPU的环境。
  • 为了配置docker,我们按照官方教程进行安装,安装最后,运行sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi,如果能识别到GPU,即结果类似于如下所示即可认为安装成功。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10    Driver Version: 535.86.10    CUDA Version: 12.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            On   | 00000000:00:1E.0 Off |                    0 |
| N/A   34C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
  • 安装成功后,我们可以从nvidia官方拉取一个pytorch镜像并建立容器,之后在该容器中配置环境。
  • 例如可以执行如下命令:docker run --name ft_pytorch -ti --runtime=nvidia --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/pytorch:22.06-py3。该命令就根据nvcr.io/nvidia/pytorch:22.06-py3镜像建立容器,容器名字为ft_pytorch。其中--runtime=nvidia --gpus all能够让我们在容器中识别到GPU,也就是上一步安装NVIDIA Container Toolkit的目的。在官方教程中,使用的是nvidia-docker命令,在这里我们只需要使用docker命令,外加--runtime=nvidia --gpus all就可以实现同样的功能。
  • --ipc=host是使容器共享宿主内存,这里主要是为了在容器内实现翻墙,从而方便的在容器内拉取github仓库。如果我们已经在linux服务器上安装好了翻墙软件例如clash,那么我们在容器中直接使用export http_proxy="http://127.0.0.1:7890/"export https_proxy="http://127.0.0.1:7890/"就可以实现翻墙了。
  • 此后,我们通过docker start运行并进入容器,可以先使用nvidia-smi再验证一下能否识别到GPU,如果可以识别,就可以继续下一步。
  • 拉取仓库git clone https://github.com/NVIDIA/FasterTransformer.git,并接着通过命令mkdir -p FasterTransformer/build, cd FasterTransformer/build新建build文件夹。
  • 执行git submodule init && git submodule update
  • 查找自己的GPU设备对应的DSM号,从官方网站上查询。
  • 执行cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_PYT=ON -DBUILD_MULTI_GPU=ON ..,将xx替换为刚刚查询的DSM号。注意此前我在官方网站上查询得到的DSM是8.9,之后我将8.9带入,一直无法编译成功。后来换成89就可以了!
  • 执行make -j12编译,成功后就可以跑FasterTransformer中的示例验证是否真正成功了!
  • 可以使用小一点的模型,例如opt-125m进行验证。跑huggingface的官方样例可能还需要在容器中安装git lfs,可以在网上搜索,我是参考的官方教程,应该也可以参考这个教程
更多推荐

最小二乘法

LeastSquareMethod1、相关的矩阵公式2、线性回归3、最小二乘法3.1、损失函数(LossFunction)3.2、多维空间的损失函数3.3、解析法求解3.4、梯度下降法求解1、相关的矩阵公式Precondition:ξ∈Rn,A∈Rn∗ni:σAξσξ=ATii:σξTAξσξ=ATξ+Aξiii:(A

【TCP】粘包问题 以及 异常处理

粘包问题以及异常处理一.粘包问题二.TCP异常情况一.粘包问题注意:不仅TCP存在粘包问题,其他面向字节流的机制也存在粘包问题。首先要明确,粘包问题中的“包”,是指的应用层的数据包。在TCP的协议头中,没有如同UDP一样的“报文长度”这样的字段。站在传输层的角度,TCP是一个一个报文过来的。按照序号排好序放在接收缓冲区

视频直播美颜sdk与计算机视觉的奇妙结合

在数字时代,视频直播已经成为了人们分享生活、娱乐互动的重要方式之一。而随着社交媒体和在线直播平台的不断发展,用户们对于直播质量和体验提出了越来越高的要求。其中之一就是美颜效果。美颜不仅仅是为了矫正自身缺陷,它更是一种增强直播吸引力的手段。本文将探讨视频直播美颜sdk与计算机视觉技术的结合,以及这种奇妙结合是如何提升用户

26.39万起的2024款小鹏G9能大卖吗?

监制|何玺排版|叶媛小鹏2024款G9正式发布。新G9对硬件配置和智驾系统做了升级,起售价上更比老款G9直降4万余元,以全新的姿态,再度杀入纯电中大型旗舰SUV赛道。“重生”而归的新款G9,这次能大卖吗?012024款小鹏G9发布2024款G9发布会上,小鹏汽车董事长何小鹏亲自主持并对新产品进行了详尽阐述。在发言中,他

海外代理IP是什么?如何使用?

一、海外代理IP是什么?首先,代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器,被称为“中介”,因为它位于最终用户和他们在线访问的网页之间。海外IP代理是就是指从海外地区获取的IP地址,用于将互联网连接路由通过位于不同国家或地区的服务器。这种代理服务允许用户隐藏其真实的地理位置,并获得访问其他国家或

Redis缓存与从数据取数据性能比较

Redis缓存与从数据取数据性能比较为什么使用Redis使用Redis缓存数据有多个原因,包括提高性能、降低数据库负载、减少响应时间和支持临时数据存储等。以下是一些主要原因以及Redis缓存的工作原理和好处:1.提高性能:数据库查询通常是一个相对较慢的操作,特别是当数据库中的数据量很大时。通过将常用的数据存储在Redi

定制EXP之RCE

文章目录1.常见模块介绍1.1base641.1.1base64编码1.1.2base64解码1.2string2.常规EXP编写2.1phpstudy_2016-2018_rce漏洞2.1.1漏洞利用脚本2.1.2进阶脚本2.1.3漏洞检测名词解释POC(ProofofConcept)漏洞验证代码,验证漏洞的存在性。

【ODPS新品发布第2期】实时数仓Hologres:推出计算组实例/支持JSON数据/向量计算+大模型等新能力

阿里云ODPS系列产品以MaxCompute、DataWorks、Hologres为核心,致力于解决用户多元化数据的计算需求问题,实现存储、调度、元数据管理上的一体化架构融合,支撑交通、金融、科研、等多场景数据的高效处理,是目前国内最早自研、应用最为广泛的一体化大数据平台。本期将重点介绍ꔷHologres推出计算组实例

计算机竞赛 深度学习OCR中文识别 - opencv python

文章目录0前言1课题背景2实现效果3文本区域检测网络-CTPN4文本识别网络-CRNN5最后0前言🔥优质竞赛项目系列,今天要分享的是🚩**基于深度学习OCR中文识别系统**该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:4分🧿更多

java 服务jvm参数据配置

JVM参数设置说明-Xms4g初始堆大小默认物理内存的1/64(<1GB)默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制。初始和最大最好设置成一样,避免堆内存在应用运行过程中自动扩容而影响服务稳定性-Xmx4g最大堆大小默认物理内存的1/4(<1GB)

选择半导体老化测试方法

随着半导体使用的不断普及,老化成为一个主要问题。由于半导体的电气特性发生变化,老化可能会导致严重的故障。老化是指半导体器件由于连续使用或长时间暴露于各种环境条件(包括温度、湿度、辐射和电应力)而导致的电气特性的缓慢损失。半导体老化的影响包括:设备漏电流的增加会导致传输质量下降和能耗增加。阈值电压降低,影响器件的开关特性

热文推荐