GPU_Tool工具需求规格说明书

1. 简介

1.1 目的


本文阐述了GPU_Tool工具的开发需求。用于指导GPU_Tool工具的开发人员进行设计、开发和测试,是整个项目后续的工作基础。

1.2 范围


本项目输出产品名称为GPU_Tool,是基于CUDA的一款GPU性能监控工具,在这个工具中将实现以下特性,并按实现优先级从高到底对其进行排序,其中本工具第一版本优先实现第1和2项特性。

  1. 支持对GPU设备的物理信息进行查询和检测。
  2. 支持监控GPU设备上运行程序的动态信息。
  3. 支持前台手动和后台自动检测GPU进程。
  4. 支持用户指定检测选项。
  5. 支持对检测GPU进程进行总结和概括。
  6. 支持以控制终端形式输出检测信息。
  7. 支持以文件形式输出和保存检测信息。
  8. 支持对GPU进程的kernel函数进行追踪。
  9. 支持对CUDA进程的API调用进行追踪。

GPU_Tool不支持以下特性:

  1. 不能够以图形界面启动。
  2. 不支持对被检测GPU进程进行调式。
  3. 不支持NVIDIA 以外GPU设备的信息检测。

2. 总体概述

2.1 软件概述


随着GPU应用的逐渐增多,特别是高性能与并行计算的广泛应用。对于软件的普通用户需要对GPU设备上运行的程序进行实时监控,对于CUDA开发工程师需要对程序进行性能监测,从而进行软件优化。GPU_Tool工具提供了详细的GPU设备物理信息和GPU进程运行的动态信息,通过这些信息可以了解GPU的处理能力和当前工作负载。

2.2 产品环境介绍


GPU_Tool工具是一款应用软件,与GPU应用一样是用户级的软件,GPU_Tool工具与GPU应用之间不存在层次关系,两者互相独立,即本工具和被检测GPU应用是分别独立编译完成的可执行应用,两者分别在CPU和GPU上执行。为了实现对GPU应用进行监控,也为方便工程师对GPU进行优化,


图 1.png

3. 软件功能

========

GPU_Tool工具能够查询当前GPU静态的物理信息,以及能够监控GPU设备的动态信息和收集在当前GPU上执行进程的运行信息,包括核函数执行、内存传输、内存设置和CUDA进程的
API调用。同时,能够提供多种监控方式和检测模式。

3.1 监控方式


GPU_Tool与被监控的GPU应用之间是互相独立,即GPU_Tool和被监控应用是分别独立编译完成的可执行应用,两者分别在CPU和GPU上执行。为了实现对GPU应用进行监控,也为方便工程师对GPU进行优化,所以本工具提供两种工作方式:手动和自动。

  1. 手动方式

手动方式是指GPU_Tool工具在前台执行,并且需要用户通过GPU_Tool手动将GPU应用加载到系统上执行,进而用户自己筛选需要的选项,从而检测GPU应用相关的静态或动态信息。

  1. 自动方式

自动方式是指GPU_Tool在后台执行,并实时监控所有在GPU上执行的进程信息。这种工作方式相比手动方式要更加独立,对于GPU进程来说GPU_Tool是透明的,即GPU进程根本不知GPU_Tool的存在;但比手动方式要被动,即该工具进程将一直驻留在后台中,并对所有GPU进程进行实时检测,类似Windows中的任务管理器。

3.3 检测模式


检测模式是指用户能够根据需要对特定信息进行监控,即不同的检测模式对GPU进程的监控关注点不同,从而用户能够快速获得特定的需求信息。其中有如下几种检测模式,每种检测模式都可以是手动或自动方式下工作。

  1. 物理模式

所谓物理模式是指GPU_Tool只获得当前GPU硬件的静态信息,而对GPU进程的运行动态信息则进行忽略。如在该模式下能够获得GPU的CUDA能力、GPU版本号、驱动版本号,而忽略进程的block和wrap数。

  1. 总结模式

总结模式是指GPU_Tool只对GPU进程的动态运行信息进行监控,并提供每个kernel函数的运行信息和内存的传输信息,对于每个kernel函数,监控工具能够输出所有实体的运行总时间,以及内存传输的平均、最小和最大时间,而且GPU_Tool能够打印出所有的CUDA
运行API和驱动API的调用信息。

  1. 追踪模式

追踪模式能够提供所有在GPU设备上发生的所有活动的时间轴顺序,即能够输出在GPU上运行的kernel函数或API的调用顺序,包括kernel函数的参数、共享内存的使用情况和内存的传输量。

  1. 测量模式

测量模式为用户提供多种选项完成特定信息的测量,比如GPU进程执行的block或thread数量、kernel函数在GPU上执行的利用率、内存的使用情况等动态信息。用户可以根据自己需要进行监控,或者监控全部信息。

4. 检测信息

4.1 物理信息


每种硬件平台都有其固有物理限制,无法在软件层进行修改。GPU设备也受到这种限制,并且GPU_Tool能够查询这些物理信息。本GPU_Tool工具能够提供的查询能力和信息,参考deviceQuery应用程序和cudaDeviceProp数据结构,列出如表
1所示的物理信息。

表 1

结构 语义
Device num GPU 设备数量
Device name GPU 设备名字
CUDA Driver Version CUDA 驱动版本
CUDA Runtime Version CUDA 运行库版本
CUDA Capability Major version number CUDA设备的主计算功能集的主版本号
CUDA Capability Minor version number CUDA设备的主计算功能集的次版本号
Total amount of global memory 总共可用的全局空间
Multiprocessors 流处理器数量
CUDA Cores/MP 每个流处理器的CUDA 核心数量
GPU Max Clock rate GPU最大时钟频率
Memory Clock rate 内存时钟频率
Memory Bus Width 内存总线带宽
L2 Cache Size L2 Cache大小
Total amount of constant memory 总共的constant存储空间
Total amount of shared memory per block 每个block总共的share空间
Total number of registers available per block 每个block的总共register空间
Warp size 当前GPU中的warp大小
Maximum number of threads per multiprocessor 每个流处理器中可承载的最大线程数量
Maximum number of threads per block 每个block中可承载的最大线程数量
Max dimension size of a thread block (x,y,z) 在启动核函数时,block三维向量中的每一维向量可用创建的最大长度
Max dimension size of a grid size (x,y,z) 在启动核函数时,gird三维向量中的每一维向量可用创建的最大长度
Maximum memory pitch 在内存复制中最大的修正量(Pitch)
Concurrent copy and kernel execution 描述设备是否支持在同一个上下文中同时执行多个核函数
Run time limit on kernels 描述该设备上执行的核函数是否存在运行限制
Integrated GPU sharing Host Memory 描述该设备是否是集成GPU
Support host page-locked memory mapping 描述设备是否将主机内存映射到CUDA设备地址空间

4.2 运行信息


运行信息是指GPU进程在执行时产生的动态信息,由于不同的kernel函数和API调用都产生不同的信息结构,并且不同的用户也有不同的需求,所以参考NVIDIA
eclipse富客户端应用程序展示的信息,列出表 2所示的动态信息。

表 2

检测内容 是否可实现
GPU占有率 NO
GPU内存使用率 YES
GPU数据传输带宽 NO
CPU—GPU数据传输量 NO
GPU温度 YES
Fan值 YES
GPU Memory使用量 YES
GPU Memory空闲量 YES
流处理器中可用的最大shared 值 NO
32位流处理器中最大可用registers值 NO
获得GPU运行进程 YES
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容