寻找 CUDA 中的最大值

2024-04-16

我正在尝试在 CUDA 中编写代码来查找最大值 对于给定的一组数字。

假设您有 20 个数字,并且内核在 2 个块(每块 5 个线程)上运行。现在假设 10 个线程同时比较前 10 个值,并且thread 2找到最大值,因此线程 2 正在更新全局内存中的最大值变量。当线程 2 正在更新时,将使用旧值进行比较的剩余线程 (1,3-10) 会发生什么情况?

如果我使用atomicCAS()锁定全局变量,线程(1,3-10)是否会使用旧的最大值进行比较?我怎样才能克服这个问题?


这纯粹是一个减少问题。这里有一个好的推介会 http://www.cuvilib.com/Reduction.pdf由 NVIDIA 开发,用于优化 GPU 上的缩减。您可以使用相同的技术来查找所有元素的最小值、最大值或总和。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找 CUDA 中的最大值 的相关文章

  • 具有多个参数和返回值的两个并行函数

    我有两个独立的功能 每一个都需要相当长的时间来执行 def function1 arg do some stuff here return result1 def function2 arg1 arg2 arg3 do some stuff
  • 使用多处理和 PySftp 并行下载

    我正在尝试创建一个代码来使用 pysftp 和多处理库下载相同类型的 N 个文件 我做了一个基本的Python训练 得到了一些代码并将它们组合成一个 但我无法让它工作 如果有人帮助我 我将不胜感激 该错误发生在 vFtp close 命令之
  • 如何并行运行命令列表?

    我有一个包含我要运行的命令行的文件 该文件包含大约 2 000 行 我有 8 个可用核心 是否可以解析文件并启动 8 个进程 然后在其中一个程序完成时从文件中执行另一个进程 我希望这种情况继续下去 直到到达文件末尾 Use GNU并行 ht
  • OpenCV 2.4.3rc 和 CUDA 4.2:“OpenCV 错误:没有 GPU 支持”

    我在这张专辑中上传了几张截图 https i stack imgur com TELST jpg https i stack imgur com TELST jpg 我正在尝试在 Visual Studio 2008 中的 OpenCV 中
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 在并行包中的 R 的 par*apply 函数内部使用 Rcpp 函数

    我试图了解背后发生的事情Rcpp sourceCpp 调用并行环境 最近 问题中部分解决了这个问题 在 Windows 上使用 parLapply 中的 Rcpp 函数 https stackoverflow com questions 2
  • “程序顺序”实际上是什么意思?

    据我所知 莱斯利 兰波特 Leslie Lamport 声明如下 任何执行的结果都相同 就好像所有处理器的操作都按某种顺序执行 并且每个单独处理器的操作都按此顺序出现在由其程序指定的顺序 取自 Leslie Lamport 如何制作正确执行
  • 摆脱异步 cuda 流执行期间的忙等待

    我正在寻找一种方法 如何摆脱以下代码中主机线程中的忙等待 不要复制该代码 它仅显示我的问题的想法 它有许多基本错误 cudaStream t steams S N for int i 0 i lt S N i cudaStreamCreat
  • Node.js - Async.js:并行执行如何工作?

    我想知道 async js 中并行执行是如何工作的 async require async async parallel function callback for var i 0 i lt 1000000000 i Do nothing
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • 在 CUDA 中的设备内存上分配 2D 数组

    如何在 Cuda 中的设备内存中分配和传输 往返于主机 2D 数组 我找到了解决这个问题的方法 我不必展平阵列 内置的cudaMallocPitch 函数完成了这项工作 我可以使用以下命令将阵列传输到设备或从设备传输阵列cudaMemcpy
  • AsParallel.ForAll 与 Parallel.ForEach

    下面的代码片段有什么区别吗 如果是这样 那又怎样 myList AsParallel ForAll i gt DO SOMETHING and Parallel ForEach mylist i gt DO SOMETHING 主线程会等待
  • 如何安装libcusolver.so.11

    我正在尝试安装 Tensorflow 但它要求 libcusolver so 11 而我只有 libcusolver so 10 有人可以告诉我我做错了什么吗 这是我的 Ubuntu nvidia 和 CUDA 版本 uname a Lin
  • 如何简化 Step Functions 的复杂并行分支相互依赖关系

    我的任务是将依赖节点列表转换为 AWS Step Functions AWS Step Function 定义允许并行分支甚至嵌套到多个深度的分支 不幸的是 它不支持分支中任务之间的依赖关系 因此强制您在两个结果可用于步骤函数中的后续任务之
  • 使用推力来处理 CUDA 类中的向量?

    我对 C 类的推力的适用性有疑问 我正在尝试实现一个类对象 该对象接收顶点的 x y z 坐标作为 ver1 ver2 和 ver3 然后 分配给一个三角形并计算面积和法向量 然而 我不太明白如何创建一类推力向量 这是我从文件中读取的顶点坐
  • 为什么list.parallelStream().forEach()没有处理Java中列表中的所有元素?

    以下代码并未在完成并行处理后将所有元素放入目标列表中 这有什么原因吗 public static void main String args List
  • 如何从C++头文件调用CUDA文件?

    我知道从 c 文件调用 cu 文件的方法 但现在我想从 C 头文件调用 cu 文件 有可能做到吗 如果是这样 我应该如何设置我的项目 请帮忙 这是一个有效的例子 file1 h int hello file2 h include
  • CUDA 代码会损坏 GPU 吗?

    在测试包含内存错误的 CUDA 时 我的屏幕被冻结了 重新启动后我无法再检测到显卡 我的代码是否有可能物理损坏该卡 这发生在 Ubuntu 14 04 下 我不知道该卡的型号 因为我无法检测到它 但我记得它是一张相当新的卡 感谢所有的评论我
  • 避免 Python 3 的多处理队列中的竞争条件

    我正在尝试找到大约 61 亿 自定义 物品的最大重量 并且我想通过并行处理来完成此操作 对于我的特定应用程序 有更好的算法不需要我迭代超过 61 亿个项目 但解释它们的教科书超出了我的能力范围 我的老板希望在 4 天内完成此任务 我认为我公
  • 如何使用 OpenMP 并行化数组移位?

    如何使用 OpenMP 并行化数组移位 我已经尝试了一些方法 但没有得到以下示例的任何准确结果 该示例旋转 Carteira 对象数组的元素 用于排列算法 void rotaciona int i Carteira aux this gt

随机推荐

  • 尝试在 Firefox 中安装我的附加组件的 .xpi 文件时,附加组件“似乎已损坏”

    我正在尝试在 Firefox 45 中安装扩展 Firefox 49 也会发生同样的情况 但 Firefox 不允许我这样做 这表明 This add on could not be installed because it appears
  • 为什么 bootstrap.properties 被 spring-cloud-starter-config 忽略?

    我的目标是获取配置world service from a config service 架构 config service有依赖性spring cloud config server at localhost 8888 world ser
  • 强制 R 函数调用自给自足

    我正在寻找一种方法来调用不受其他对象影响的函数 GlobalEnv 看一下下面两个函数 y 3 f1 function x x y f2 function x library dplyr x gt mutate area Sepal Len
  • 引导程序更改 $grid-gutter-width

    我正在使用 Bootstraps 网格系统 我需要一个2px每列之间的空间 我尝试过 Column Gap 但没有任何效果 有人可以帮忙吗 代码 HTML div class container div class row div clas
  • 泛型方法调用重载方法的问题

    我遇到了有趣的事情 在 Java 和 C 中工作相同 Java代码 public class TestStuff public static void main String args Printer p new PrinterImpl p
  • 创建可折叠代码块 Eclipse

    为了使我的代码在 Eclipse 上干净整洁 我想知道用 Any 标签包围的代码是否可以作为函数收回 我使用 eclipse Juno 进行 Android 开发 是的 您可以使用该插件 咖啡字节代码折叠 http market eclip
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • 来自 php 的 jQuery Ajax 响应变量

    我有一个简单的问题 但无法找到我需要的确切解决方案 如何使用 jQuery ajax 调用仅回显两个 PHP 变量的 PHP 文件 并将它们保存到响应中的 javascript 变量中 你会做类似的事情 getJSON ajax respo
  • Amazon S3 上传错误 PermanentRedirectException

    我已经使用 Composer 安装了适用于 PHP 的 Amazon SDK 我复制了示例代码并在我的系统中实现 但是当我尝试上传文件时 我得到以下信息 为了安全起见 我已将路径设为通用 致命错误 未捕获异常 Aws S3 Exceptio
  • 重用黄瓜数据表

    如何跨多个场景或功能文件重用 Cucumber 测试数据 我想绕过表数据代码重复 我当前的功能文件 Scenario At begining unable to click on first When On Sidebar page I c
  • 网格单位向量中的元素替换

    我已经对此感到困惑好几次了 所以这里为其他可能偶然发现同样问题的人提出了一个虚构的问题 考虑这个网格单位向量 a unit 1 3 c cm in npc 我想用新值替换一些元素 自然的方法是 a 1 unit 2 pt a 1 2cm 2
  • 如何使用 javax.mail.internet.MimeBodyPart.setFileName 保留所有字符?

    我需要使用创建邮件javax mail版本 1 6 2 希望尽可能坚持高级方法 并希望避免自己处理字符编码 折叠以及最终获得有效邮件所需的任何内容 我目前正在处理的一个问题是文件名 因为默认情况下javax mail internet Mi
  • 如何在 Tridion 中获取当前登录用户的用户 ID?

    我在 Tridion 中实现了一个功能区工具栏按钮 作为其中的一部分 我需要循环访问一些组件 这需要有效的会话 要在 Tridion 中创建会话 我需要一个用户 ID 如何获取当前用户的User Id windows User Id 下面的
  • PHP 在函数中包含/需要

    是否可以在 PHP 函数内的包含文件中包含 return 语句 我希望这样做 因为我在单独的文件中有很多函数 并且它们在顶部都有大量共享代码 As in function sync include once file php echo Te
  • 快照图像不能用作舞台图标

    我正在尝试将舞台快照中的图像设置为舞台图标 下面的代码演示了它 import javafx application Application import javafx scene Scene import javafx scene imag
  • 视口、窗口、文档

    在下面的代码中 document documentElement clientWidth 1349 document documentElement clientHeight 363 window innerWidth 1366 windo
  • Gradle 多项目定义对根项目的依赖

    我有一个多项目 gradle 构建 以这种方式配置 root projectA projectB 我想在root build gradle所有嵌套项目的依赖项 这是文件 subprojects version 1 0 SNAPSHOT re
  • Blazor RenderFragment 到字符串

    我正在开发一个代码块组件 Net 6 Blazor wasm 我需要显示RenderFragment as string并在我的 html 中渲染该组件 这是我的代码块组件 pre class language html code clas
  • 服务崩溃,事件名称为 [CLR20r3] [重复]

    这个问题在这里已经有答案了 我已经创建了一项服务 Net c 基本上定期发送电子邮件 该服务在我的上运行良好x32 XP机器但是当我部署时x64 build基于另一个 x64 Windows Server 2008 R2机器 服务启动并在几
  • 寻找 CUDA 中的最大值

    我正在尝试在 CUDA 中编写代码来查找最大值 对于给定的一组数字 假设您有 20 个数字 并且内核在 2 个块 每块 5 个线程 上运行 现在假设 10 个线程同时比较前 10 个值 并且thread 2找到最大值 因此线程 2 正在更新