一、nvprof分析线程束和内存读写
(1)线程束占用率分析
线程束占用率:nvprof --metrics achieved_occupancy
(2)内存读写分析
内核数据读取效率:nvprof --metrics gld_throughput
程序对设备内存带宽利用率:nvprof --metrics gld_efficiency
二、GPU动态并行
1. 动态并行概念
(1)在GPU上动态创建内核并同步内核执行
(2)通过动态并行技术可以在内核运行时设置线程模型配置
(3)动态并行技术有效减少GPU、CPU间执行权限的切换和数据传输
2. 动态并行特点
(1)线程网格、线程块、线程模型配置以及内核函数启动方式在动态并行中仍然适用
(2)动态并行中内核执行分为两类:父内核执行(父线程、父线程块、父线程网格)、子内核执行(子线程、子线程块、子线程网格)
(3)父内核执行由主机程序发起、子内核执行由父内核执行发起
(4)父内核与子内核共享全局(global)和常量(constant)内存
(5)父内核与子内核具有各自独立的本地(local)和共享(shared)内存