too many blocks in cooperative launch at cudaLaunchCooperativeKernel

在使用cudaLaunchCooperativeKernel时出现:

cudaErrorCooperativeLaunchTooLarge (error 82) due to “too many blocks in cooperative launch” on CUDA API call to cudaLaunchCooperativeKernel.

问题:

在使用cudaLaunchCooperativeKernel时,限制其最大grid_dim和block_dim的元素是什么?

A100的关键参数:
在这里插入图片描述
从上面表格中可以看到,影响cooperative launch的max_grid_dim 和max_block_dim的因素有三个:

maximum number of resident blocks per SM
maximum number of resident warps per SM
maximum number of resident threads per SM

对于A100理论上来说,在cooperative launch的时候,有如下限制(寄存器等先忽略):

block 不能超过 10832=3456
warps不能超过108
64=6912
threads 不能超过 108*2048=221184
按照上面条件获得下表,理论上下面表格数据是能cooperative launch成功的
在这里插入图片描述
(从256开始红色代表实测值)

问题是,当cooperative launch空kernel,当grid dim 从256开始后,按照理论的max block dim(绿色)的时候出现:

“too many blocks in cooperative launch” on CUDA API call to cudaLaunchCooperativeKernel.”

问题如下:

I understand I’m using too many ‘active blocks’ and have no argument with that.

What I don’t understand is how to do the math to know how many blocks and threads I can call beforehand.

为了获得答案,我们看一下sm上kernel分布:

grid_dimblock_dimsm0sm1sm2sm3sm4sm5sm6sm7sm8sm9sm10sm11sm12sm13sm14sm15sm16sm17sm18sm19sm20sm21sm22sm23sm24sm25sm26sm27sm28sm29sm30sm31sm32sm33sm34sm35sm36sm37sm38sm39sm40sm41sm42sm43sm44sm45sm46sm47sm48sm49sm50sm51sm52sm53sm54sm55sm56sm57sm58sm59sm60sm61sm62sm63sm64sm65sm66sm67sm68sm69sm70sm71sm72sm73sm74sm75sm76sm77sm78sm79sm80sm81sm82sm83sm84sm85sm86sm87sm88sm89sm90sm91sm92sm93sm94sm95sm96sm97sm98sm99sm100sm101sm102sm103sm104sm105sm106sm107
2561323232323232323232323232323232323232323232323232323232323232323232323232323232322222222222222222222222222222
25664192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128192128128128128128128128128128128128128128128128128128128128128128128128128128128128128128
25696288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192288192192192192192192192192192192192192192192192192192192192192192192192192192192192192192
256128384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256384256256256256256256256256256256256256256256256256256256256256256256256256256256256256256
256160480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320480320320320320320320320320320320320320320320320320320320320320320320320320320320320320320
256192576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384576384384384384384384384384384384384384384384384384384384384384384384384384384384384384384
256224672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448672448448448448448448448448448448448448448448448448448448448448448448448448448448448448448
256256768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512768512512512512512512512512512512512512512512512512512512512512512512512512512512512512512
256288864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576864576576576576576576576576576576576576576576576576576576576576576576576576576576576576576
256320960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640960640640640640640640640640640640640640640640640640640640640640640640640640640640640640640
2563521056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704105670410567041056704704704704704704704704704704704704704704704704704704704704704704704704704704704704704
2563841152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768115276811527681152768768768768768768768768768768768768768768768768768768768768768768768768768768768768768
2564161248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832124883212488321248832832832832832832832832832832832832832832832832832832832832832832832832832832832832832
2564481344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896134489613448961344896896896896896896896896896896896896896896896896896896896896896896896896896896896896896
2564801440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960144096014409601440960960960960960960960960960960960960960960960960960960960960960960960960960960960960960
256512153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241536102415361024153610241024102410241024102410241024102410241024102410241024102410241024102410241024102410241024102410241024102410241024
256544163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881632108816321088163210881088108810881088108810881088108810881088108810881088108810881088108810881088108810881088108810881088108810881088
256576172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521728115217281152172811521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152
256608182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161824121618241216182412161216121612161216121612161216121612161216121612161216121612161216121612161216121612161216121612161216121612161216
256640192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801920128019201280192012801280128012801280128012801280128012801280128012801280128012801280128012801280128012801280128012801280128012801280
256672201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613442016134420161344201613441344134413441344134413441344134413441344134413441344134413441344134413441344134413441344134413441344134413441344

直接看最后一行,可以看到block dim=672,也就是说threads per block is 672,我们知道一个block内的threads不能跨SM,所以在这里,每个SM上可以放6723=2016个threads.那么我们所有的256(小于1083=324)个block都是可以放上去的。

当执行到256*704的时候失败,
在这里插入图片描述
为什么这里失败呢?

这是因为当grid dim固定为256的时候,当block dim=704的时候,每个sm上最多能放2个block,所以最多能launch108*2=216个block,其余的block加载不上去,为什么?

因为block dim=704,现在每个SM上已经都有704*2=1408个threads了,现在每个SM还能容纳2048-1408=640个threads,而我们的每个block是704,所以就出现too many error了。

查看cuda文档,看到下面介绍,可以通过函数

cudaOccupancyMaxActiveBlocksPerMultiprocessor()来查询:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/416201.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

总线操作与定时

目录 一. 总线定时1.1 同步通信(同步定时方式)1.2 异步通信(异步定时方式)1.3 半同步与分离式通信(了解即可) 二. 总线标准(了解即可)2.1 总线标准的概念2.2 系统总线标准2.3 局部总…

新电脑Win11系统想要降级为Win10怎么操作?

前言 现在的电脑大部分都是Windows 11系统,组装机还好一些,如果想要使用Windows 10,只需要在安装系统的时候选择Windows 10镜像即可。 但是对于新笔记本、厂商的成品机、一体机来说,只要是全新的电脑,基本上都是Wind…

Windows中Git对文件名大小写不敏感的问题解决方法

文章目录 前言一、Git 对文件名大小写不敏感方法1.使用git命令进行修改方法2.关闭git 忽略大小写配置 (可以当前项目设置,也可以全局设置 --global) 二、新的问题(重复的目录)原因分析解决方法 前言 Git是一个免费的、…

C#使用MQTT(一):MQTT服务端

MQTT(Message Queuing Telemetry Transport) 即时通讯协议, 开发商 IBM MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状…

【图论】Dijkstra算法求最短路

一、Dijkstra算法简介 Dijkstra算法是由河南荷兰计算机科学家狄克斯特拉(Dijkstra)于1959年提出的,因此又叫狄克斯特拉算法。 二、初识Dijkstra算法 在使用Dijkstra算法求最短路时,需要用到三个辅助数组: v i s x vis_x visx​:布尔数组&…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.3 存储器

这一章,前面不难,后面难。 教你别这么连线连出问题。 看结果说话,延迟两个时刻输出。 先不管要求,输出一个稳定的信号,看看之前给了延迟元件正好延迟一刻,然后作为输入和那个稳定的信号做一个逻辑运算改变…

国内可以免费使用的gpt网站【九月持续更新】

GPT Hub 是我最近使用的一款智能文本生成工具平台,它支持多种AI模型,包括最新的GPT-4模型,并且可以在国内网络环境中直接访问。以下是我在使用过程中发现的一些特点: 多功能支持:不仅支持代码生成,还涵盖了…

macos OneNote 2016 for Mac 官方pkg下载地址 - macos 10.15 Catalion 可用Onenote版本官方下载地址

macos 10.15 Catalion 版本的系统已经无法正常从应用商店下载到可用的Onenote 应用,原因是版本不受支持, 而且onenote官方链接的应用商店地址https://apps.apple.com/us/app/microsoft-onenote/id784801555?mt12在中国地区也无法访问, 所以中国地区用户如果想使用onenote应用…

抢先看:2024云栖大会体验攻略

这是一场「AI」奇妙之旅。 2024云栖大会定档 9月19日! 期待与你在 杭州云栖小镇 共度一场为期3天的科技盛会 三日主论坛 400分论坛 与并行话题 4万平米 智能科技展区 免费领取云栖大会门票 怎么看、怎么玩、怎么逛 超长干货攻略奉上,请查收 ⬇️…

二开PHP泛目录生成源码 可生成新闻页面和关键词页面——码山侠

PS 本资源提供给大家学习及参考研究借鉴美工之用,请勿用于商业和非法用途,无任何技术支持! 下载i5i.net 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果 程序小 基本的服务器都带的得动 打开i5i.net——…

ROS的Navigation导航系统move_base

Navigation系统和人在使用地图app进行导航的过程类似,接下来让我们看下面的两幅框图: global_planner(全局规划器)从map _server地图服务器获取global_costmap(全局地图数据),然后根 据输入的导航目的地(move_base_simple/goal)生成全局导航路线(intern…

np.c_ 和 np.r_ 的使用

1. np.c_ 的使用 np.c_ 是 NumPy 库中的一个函数,用于沿着第二轴(列)连接两个或多个数组。这个函数通常用于将两个数组的列合并在一起,而不会改变它们原有的行顺序。np.c_ 是一个非常有用的工具,尤其是在处理需要按列…

Draw.io for Mac/Win:免费且强大的流程图绘制工具

在数字化时代,流程图已成为表达复杂过程和逻辑关系的重要工具。Draw.io(现也称为diagrams.net),作为一款免费且功能强大的流程图绘制工具,无论是对于Mac还是Windows用户,都是不可多得的选择。 一、跨平台兼…

基于51单片机的跑马串口调试波形发生器proteus仿真

地址: https://pan.baidu.com/s/1WTjU_hRJ-fLMTT5g1q-NlA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…

python中.之后的圈c、圈v分别代表什么意思?

python中.之后的圈c、圈v分别代表什么意思? Python中,.之后的圈c表示类的实例方法,而圈v表示类的成员变量。 在面向对象编程中,类是一种抽象的数据类型,实例方法是定义在类中的函数,用于操作类的实例变量…

kubeadm方式安装k8s

⼀、安装环境 1. 安装说明 本次以⼆进制⽅式安装⾼可⽤ k8s 1.28.0 版本,但在⽣产环境中,建议使⽤⼩版本⼤于 5 的 Kubernetes 版本,⽐如 1.19.5 以后。 2. 系统环境 3. ⽹络及版本环境 注:宿主机⽹段、Pod ⽹段、Service ⽹段…

Python案例 | 四阶龙格库塔法简介

1.引言 在数值分析中,龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔龙格和马丁威尔海姆库塔于1900年左右发明。 龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高…

59.以太网数据回环实验(2)硬件资源梳理及系统框图

硬件资源梳理介绍: 升腾开发板使用的以太网PHY芯片型号为RTL8211F,是低功耗10-BASE/100-BASE/1000-BASE全双工以太网PHY层芯片,支持 10Mbps、100Mbps 和 1000Mbps以太网通信。I/O 引脚电压可变,符合 IEEE802.3-2005 标准&#xff…

Web3社交新经济,与 SOEX 实现无缝交易的高级安全性

出于充分的理由,安全性是交易中至关重要的考虑因素。每个人都应该确保自己的资金在交易时是安全的。由于 SOEX 充当您与交易所的最佳连接,因此必须强调的是,该系统不会引发任何安全问题。 &a…

wincc 远程和PLC通讯方案

有 5个污水厂 的数据需要集中监控到1个组态软件上,软件是WINCC。每个污水厂监控系统都是独立的,已经投入运行了, 分站也是WINCC 和西门子PLC 。采用巨控远程模块的话,有两种方式:一种是从现场的PLC取数据,一种是从分站…