FasterTransformer 001 start up

这篇具有很好参考价值的文章主要介绍了FasterTransformer 001 start up。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FasterTransformer

  • Faster Transformer是一个Transformer单层前向计算的高效实现。一个函数由多个OP组合实现。每一个基本OP都会对应一次GPU kernel的调用,和多次显存读写。OP融合可以降低GPU调度和显存读写,进而提升性能。在Faster Transformer,作者将除矩阵乘法以外的所有kernel都进行了尽可能的融合。

NVIDIA 博客在2019-07-15的介绍:

  • 目前优化集中在编码器(encoder)的前向计算(解码器decoder开发在后续特性规划中)。底层由CUDA和cuBLAS实现,支持FP16和FP32两种计算模式,其中FP16可以充分利用Volta和Turing架构GPU上的Tensor Core计算单元。
    Faster Transformer共接收4个输入参数。首先是attention head的数量以及每个head的维度。这两个参数是决定Transformer网络结构的关键参数。
    这两个参数的动态传入,可以保证Faster Transformer既支持标准的BERT-BASE(12 head x 64维),也支持裁剪过的模型(例如,4 head x 32维),或者其他各式专门定制化的模型。其余两个参数是Batch Size 和句子最大长度。
    出于性能考虑,目前句子最大长度固定为最常用的32,64 和128三种,未来会支持任意长度。Faster Transformer对外提供C++ API,TensorFlow OP 接口,以及TensorRT插件,并提供了相应的示例,用以支持用户将其集成到不同的线上应用代码中。
    NVIDIA BERT推理解决方案Faster Transformer开源啦,这篇文章还有单层计算attention的图解,可结合代码查看

Jul 29, 2021 v1.0版本的介绍

  • Faster Transformer 建立在 CUDA 和 cuBLAS 之上。它支持大于 3 且小于或等于 1024 的序列长度。变压器层的两个关键参数,即磁头的数量和每个磁头的大小,在运行时传递。因此,不仅BERT Base(12头* 64头),而且定制型号,如4头* 32/头和8头* 96每头,都得到了很好的支持。我们的实现在小批量和大批量情况下都显示出良好的加速。

v1.0_tag

  • https://github.com/NVIDIA/FasterTransformer/tree/release/v1.0_tag

  • 环境准备

  • 下边的操作有点麻烦,这个链接给出了dockerfile https://github.com/NVIDIA/TensorRT/tree/release/5.1/docker

  • sudo docker run -it --shm-size 8gb --rm --gpus=all -v ${PWD}:/test nvcr.io/nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 bash

  • cd /test/FastT

  • git clone https://github.com/NVIDIA/FasterTransformer.git

  • apt-get update

  • apt-get install git

  • 下载 FasterTransformer-release-v1.0_tag.zip git clone -b release/v1.0_tag --depth=1 https://github.com/NVIDIA/FasterTransformer.git

  • apt-get install zip

  • unzip FasterTransformer-release-v1.0_tag.zip

  • git submodule init && git submodule update

bulid

  • mkdir -p build && cd build
  • wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-x86_64.sh
  • bash ./cmake-3.26.4-linux-x86_64.sh --skip-licence --prefix=/usr
  • export PATH=“/usr/cmake-3.26.4-linux-x86_64/bin:$PATH”
  • cmake -DSM=86 -DCMAKE_BUILD_TYPE=Release -DBUILD_PYT=ON -DBUILD_MULTI_GPU=ON .. or cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release .. # C++ only
CMake Error at CMakeLists.txt:109 (add_subdirectory):
  The source directory
    /test/FastT/code/FasterTransformer/tools
  does not contain a CMakeLists.txt file.
  • 原因:在https://github.com/NVIDIA/FasterTransformer/blob/release/v1.0_tag/CMakeLists.txt有 add_subdirectory(tools)
  • 所以将其修改成 add_subdirectory(tools/gemm_test)了

make

  • make
  • maybe error : nvcc fatal : redefinition of argument ‘std’
  • https://github.com/facebookresearch/DetectAndTrack/issues/57 : Try to find out all --std=c++11 and removed
这个错误通常是由于您在使用`-ccbin`选项时指定了一个使用了不同的C++标准库的编译器而引起的。

加入`-Xcompiler -stdlib=libstdc++`选项可以明确告诉`nvcc`使用`libstdc++`标准库。例如:

nvcc -ccbin g++-7 -Xcompiler -stdlib=libstdc++ your_file.cu -o your_executable

可以在`-ccbin`选项中指定您需要使用的C++编译器,然后在`-Xcompiler`选项中指定需要使用的标准库,以解决此问题。如果您不知道应该使用哪个编译器和标准库,请参考您的CUDA安装说明文档或咨询CUDA社区。

TEST

  • ./bin/gemm_fp16 100 12 32 64 # 在路径构建下生成gemm_config.in文件,以选择gemm算法以获得最佳性能。
    FasterTransformer 001 start up

  • c++ demos: ./build/bin/transformer_fp16 100 12 32 64 <batch_size> <num_layerse> <seq_len> <head_num> <size_per_head>

Useful sample code

$ 1. sample/tensorflow/transformer_fp32.py: transformer_layer Tensorflow FP32 OP call, time measurement, timeline generation
$ 2. sample/tensorflow/transformer_fp16.py: transformer_layer Tensorflow FP16 OP call, time measurement, timeline generation
$ 3. sample/tensorflow/error_check.py: how to catch custom OP runtime errors
$ 4. sample/cpp/transformer_fp32.cc: transformer layer C++ FP32 sample
$ 5. sample/cpp/transformer_fp16.cc: transformer layer C++ FP16 sample
$ 6. sample/tensorRT/transformer_trt.cc: transformer layer tensorRT FP32/FP16 sample
$ 7. tools/gemm_test/gemm_fp16.cu: loop over all cublas FP16 GEMM algorithms and pick the best one
$ 8. tools/gemm_test/gemm_fp32.cu: loop over all cublas FP32 GEMM algorithms and pick the best one

CG

  • [NLP] Faster Transformer watch this fitst !

  • https://developer.nvidia.com/cuda-example

  • https://github.com/NVIDIA/FasterTransformer

  • 构建FasterTransformer : 推荐使用Nvidia官方提供的镜像,如: nvcr.io/nvidia/tensorflow:22.09-tf1-py3 、 nvcr.io/nvidia/pytorch:22.09-py3等,当然也可以使用Pytorch官方提供的镜像。

  • 使用 FasterTransformer 和 Triton 推理服务器部署 GPT-J 和 T5

  • FasterTransformer 中的优化

  • https://on-demand.gputechconf.com/gtc-cn/2019/pdf/CN9468/presentation.pdf

  • FasterTransformer 2.0优化——公开课听课笔记

  • 跑ChatGPT体量模型,从此只需一块GPU:加速百倍的方法来了

  • https://github.com/prabhuomkar/pytorch-cpp/blob/master/tutorials/basics/pytorch_basics/CMakeLists.txt

  • Accelerate Transformer inference on GPU with Optimum and Better Transformer文章来源地址https://www.toymoban.com/news/detail-483291.html

到了这里,关于FasterTransformer 001 start up的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • faster-whisper-webui

    whisper开源之后,很多相关的衍生产品也开源了,比如faster-whisper,它是一个比whisper转录更快的技术实现,转录速度是whisper的4倍,并且占用的显存更少,占用显存是whisper的1/2。而我们这次要讲的是faster-whisper-webui是内置了VAD的支持,可以很精准的定位到每一句话的开始和结束

    2024年02月11日
    浏览(36)
  • Faster RCNN在pycharm中运行

    参考B站up主:霹雳吧啦Wz git clone https://github.com/WZMIAOMIAO/deep-learning-for-image-processing 首先找到faster_rcnn ├── backbone: 特征提取网络,可以根据自己的要求选择 ├── network_files: Faster R-CNN网络(包括Fast R-CNN以及RPN等模块) ├── train_utils: 训练验证相关模块(包括cocotools) ├

    2024年02月03日
    浏览(44)
  • Faster-git/lecture 01

    1.1.1 什么是版本控制系统? 版本系统能够帮助我们记录代码的变化,并且可以直接恢复到某个版本的代码,不需要一直操作ctrl+z,我们可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。 1

    2024年01月23日
    浏览(55)
  • Faster RCNN模型如何自定义损失函数

    /lib/model/faster_rcnn/faster_rcnn.py /lib/model/faster_rcnn/resnet.py 与1.2同理 1.4.1 模型代码:/lib/model/faster_rcnn/faster_rcnn.py,/lib/model/faster_rcnn/resnet.py,/lib/model/faster_rcnn/vgg16.py 1.4.2 训练代码:trainval_net.py 1.4.3 测试代码:test_net.py 1.4.4 运行参数代码:libmodelutilsparser_func.py 修改/lib/model/fa

    2023年04月17日
    浏览(36)
  • [论文阅读]YOLO9000:Better,Faster,Stronger

    我们引入了YOLO9000,一个可以检测超过9000种类别的先进的实时目标检测系统。首先我们提出了多种yolo检测方法的提升方式,既新颖又参考了 之前的工作。改进后的模型,YOLOV2在标准检测任务例如PASCAL VO 和COCO 上都取得了领先。使用一个新颖的多尺度的训练方法,同一个YOLO

    2024年02月02日
    浏览(61)
  • 目标检测算法:Faster-RCNN论文解读

    前言 ​ 其实网上已经有很多很好的解读各种论文的文章了,但是我决定自己也写一写,当然,我的主要目的就是帮助自己梳理、深入理解论文,因为写文章,你必须把你所写的东西表达清楚而正确,我认为这是一种很好的锻炼,当然如果可以帮助到网友,也是很开心的事情

    2024年02月08日
    浏览(48)
  • Faster-RCNN环境搭配及运行教程

    最近正在学习Faster-RCNN,环境历经一天时间终于成功安装,借此记录下整体安装过程 本教程是Windows 10 + Python35 + CUDA 10.0 + cudnn 7.4.1.5 + tensorflow-gpu 1.13.2环境的配置过程 所使用的软件包括 名称 版本 CUDA 10.0 CUDNN 7.4.1.5 Anaconda3 4.2.0 Pycharm 2019.3.5 整体过程中所需要的软件包我都放在

    2024年02月04日
    浏览(54)
  • docker(一):Develop faster. Run anywhere.

    在进行微服务部署时,首先需要进行部署环境的搭建。目前,Docker 已经成为了微服务部署的主流解决方案之一。Docker 可以帮助我们更快地打包、测试以及部署应用程序,从而缩短从编写到部署运行代码的周期。 在本文中,我们将对 Docker 进行初步的讲解,并介绍如何将映像

    2024年02月03日
    浏览(30)
  • 基于Faster rcnn pytorch的遥感图像检测

    代码:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 使用RSOD遥感数据集,VOC的数据格式如下: RSOD是一个开放的目标检测数据集,用于遥感图像中的目标检测。数据集包含飞机,油箱,运动场和立交桥,以PASCAL VOC数据集的格式进行标注。 数据集包括4个文件夹,每个文件夹

    2024年02月06日
    浏览(39)
  • 开源语音识别faster-whisper部署教程

    源码地址 模型下载地址: 下载 cuBLAS and cuDNN 在 conda 环境中创建 python 运行环境 激活虚拟环境 安装 faster-whisper 依赖 执行完以上步骤后,我们可以写代码了 说明: 更多内容欢迎访问博客 对应视频内容欢迎访问视频

    2024年02月04日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包