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

gpu-V100显卡相关知识

一、定义

  1. RuntimeError: FlashAttention only supports Ampere GPUs or newer.
  2. torch attention注意力接口学习
  3. V100 架构是什么?

二、实现

  1. RuntimeError: FlashAttention only supports Ampere GPUs or newer.
    报错原因分析:
    GPU机器配置低,不支持 特斯拉 V100;
    flash attention是一个用于加速模型训练推理的可选项,且仅适用于Turing、Ampere、Ada、Hopper架构的Nvidia GPU显卡(如H100、A100、RTX 3090、T4、RTX 2080)

    解决: 方式一、原因是自动安装的transformers(4.40.0) 和 torch(2.2.2)版本太高,自动调用FlashAttention ,将版本分别降到4.30.0和2.1.0问题解决。
    方式二、 不让其调用FlashAttention, 修改config.json 中的配置, 看配置中是否有该参数。
    方式三: 禁用flashattention: torch.backends.cuda.enable_flash_sdp(False)

import torch

query = torch.rand(1, 32, 1, 128, dtype=torch.float16, device="cuda:3")
key = torch.rand(1, 32, 145, 128, dtype=torch.float16, device="cuda:3")
value = torch.rand(1, 32, 145, 128, dtype=torch.float16, device="cuda:3")

res = torch.nn.functional.scaled_dot_product_attention(query, key, value)
print(res.shape)

torch:2.2.1 : 自动加载 flashattention

 
Traceback (most recent call last):
File "test1.py", line 7, in <module>
res = torch.nn.functional.scaled_dot_product_attention(query,key,value)
RuntimeError: FlashAttention only supports Ampere GPUs or newer.

torch:2.1.0 : 未报错

  1. torch attention注意力接口学习
    torch 实现注意力方法: torch.nn.functional.scaled_dot_product_attention
    点乘注意力机制支持三种模块,并根据最优原则自动选择哪种模式。
    Flash Attention2内核(sdpa_flash,用于在Nvidia GPU上进行16位浮点训练和推理,适用于SM80+架构级别的GPU),
    xFormers内存高效注意力内核(sdpa_mem_eff,用于在广泛范围的Nvidia GPU上进行16位和32位浮点训练和推理)。
    当自定义内核不适用时,还提供了一个通用的内核sdpa_math的实现。
    如果发生报错,可手动禁用。如 torch.backends.cuda.enable_flash_sdp(False)

  2. V100架构
    https://www.nvidia.cn/data-center/v100/
    NVIDIA V100 Tensor Core 第一代gpu。其采用 NVIDIA Volta 架构,并带有 16 GB 和 32GB 两种配置。
    运行速度:
    在这里插入图片描述
    计算能力:
    https://developer.nvidia.com/cuda-gpus在这里插入图片描述


http://www.kler.cn/a/391953.html

相关文章:

  • 【数据结构】交换排序——冒泡排序 和 快速排序
  • 虚拟机安装Ubuntu 24.04服务器版(命令行版)
  • 在 Ubuntu 上安装 `.deb` 软件包有几种方法
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • DApp开发:定制化解决方案与源码部署的一站式指南
  • 《云原生安全攻防》-- K8s安全防护思路
  • 使用多种机器学习调参模型进行二分类建模的全流程,代做分析辅导
  • OceanStor Pacific系列 8.1.0 功能架构
  • 设计模式-七个基本原则之一-里氏替换原则
  • 初始JavaEE篇 —— 网络编程(2):了解套接字,从0到1实现回显服务器
  • 机器人操作臂逆运动学
  • kafka消费数据太慢了,给优化下
  • labview连接sql server数据库
  • MySQL远程连接错误解决:Host is not allowed to connect to this MySQL server
  • 【Rust中的链表实现】
  • 【大数据测试HBase数据库 — 详细教程(含实例与监控调优)】
  • AI编程工具市场是一个庞大且不断增长的市场
  • vue3 组件通信 --- useAttrs()
  • 计算机毕业设计Python+Neo4j中华古诗词可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析 PyTorch Tensorflow LSTM
  • 测试实项中的偶必现难测bug--<pre>标签问题
  • [面试]关于Redis 的持久化你了解吗
  • 中华活页文选(传统文化教学与研究)简介及期刊点评
  • 蓝队技术学习
  • 网络技术-OVS的ovs-ofctl add-flow 命令新增流表
  • Docker 的安装与使用
  • 什么是Python模块化编程