是否可以在应用程序之间共享 Cuda 上下文?

2023-12-25

我想在两个独立的 Linux 进程之间传递 Cuda 上下文(使用我已经设置的 POSIX 消息队列)。

Using cuCtxPopCurrent() and cuCtxPushCurrent(),我可以获得上下文指针,但是这个指针是在我调用该函数的进程的内存中引用的,在进程之间传递它是没有意义的。

我正在寻找其他解决方案。到目前为止我的想法是:

  1. 尝试深度复制CUcontextstruct,然后传递副本。
  2. 看看我是否可以找到一个共享内存解决方案,其中我的所有 Cuda 指针都放置在那里,以便两个进程都可以访问它们。
  3. 将进程合并为一个程序。
  4. Cuda 4.0 中可能有更好的上下文共享,我可以切换到它。

我不确定选项(1)是否可行,也不确定选项(2)是否可用或可能。如果我想让事情变得通用(这是在劫持垫片内),(3)并不是真正的选择。 (4) 我会看看 Cuda 4.0,但我也不确定它是否能在那里工作。

Thanks!


一句话,不。上下文隐式地与创建它们的线程和应用程序相关联。单独的应用程序之间不存在可移植性。这与 OpenGL 和各种版本的 Direct3D 几乎相同 - 不支持在应用程序之间共享内存。

CUDA 4 使 API 线程安全,以便单个主机线程可以同时保存超过 1 个上下文(即超过 1 个 GPU),并使用规范的设备选择 API 来选择它正在使用的 GPU。如果我正确理解你的问题/应用程序,这在这里没有帮助。

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

是否可以在应用程序之间共享 Cuda 上下文? 的相关文章

  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c

随机推荐

  • 按特定顺序执行测试套件

    我正在使用 maven failsafe 插件来触发 testng 套件 其配置类似于
  • 如何将 `getOrWaitUntilNonEmpty` 作为单个衬垫执行?

    我有一个高级代码结构 如下所示 val block gt Option Seq String val matches block get toArray 问题是这段代码可能会失败 即 get being None取决于时间 例如我是页 sc
  • “User”对象没有属性“get”

    我正在尝试构建一个ModelForm从这个解决方案here https stackoverflow com questions 862522 django populate user id when saving a model 但是我收到
  • 使用 pytest-django 对现有数据库运行测试

    有谁知道如何使用 pytest django 针对现有 例如生产 数据库运行 Django 测试 我知道 一般来说 这不是单元测试应该做的事情 但就我而言 我在 Heroku 上运行测试 默认情况下 Django 创建一个新的测试数据库 但
  • 在没有代理的 MS SQL 中实现每分钟事件

    我希望我的存储过程每分钟执行一次 但我无法访问 SQL Server 代理 使用 Windows 调度程序和 sqlcmd exe 将是最简单的
  • GitHub API (v3):按创建日期排序标签

    我在使用 GitHub API 时遇到了问题 我需要在单个标签之后创建的所有标签的列表 执行此操作的唯一方法是按日期比较标签 但是 API 的结果不是按日期排序的 API 的结果 rails 存储库示例 网络界面的结果 我所期望的是按日期排
  • PHP 等于 foreach 循环中的箭头运算符[重复]

    这个问题在这里已经有答案了 可能的重复 foreach ex as k gt v 中的 k gt v 是什么意思 https stackoverflow com questions 4758791 what does k v in fore
  • 追加 Blob 数据

    是否有一个函数可以附加 blob 数据JavaScript我目前使用以下方法 var bb new Blob Hello world 2 type text plain bb new Blob bb another data type te
  • 将blur.js 与angularjs 一起使用

    我正在尝试在 div 上制作带有角度的模糊背景效果 如上图所示 为此我正在使用blur js http blurjs com 使用 jquery 一切都可以正常工作 但真正的问题是使用 angularjs 可以实现这一点 最好的方法是什么
  • WPF 复选框:检查更改的处理

    在 WPF 数据绑定中 我可以将 IsChecked 属性绑定到某些数据 例如用户设置 但我需要处理 CheckChanged 事件 我知道我可以单独处理Checked 未选中事件 但是当这个值改变时有什么方法可以得到通知吗
  • data.table:lapply 具有多列输出的函数

    我正在使用一个函数smean cl normal来自 Hmisc 包 它返回一个具有 3 个值的向量 均值以及 CI 下限和上限 当我在一个data table对于 2 个组 我获得 2 列和 6 行 有没有办法获得与 2 个组相对应的两行
  • 在 TensorFlow 中在 NHWC 和 NCHW 之间转换

    将张量从 NHWC 格式转换为 NCHW 格式 反之亦然 的最佳方法是什么 是否有专门执行此操作的操作 或者我需要使用拆分 连接类型操作的某种组合 您所需要做的就是将维度从 NHWC 排列到 NCHW 或相反 每个字母的含义可能有助于理解
  • C++11 中弱类型枚举的基础类型

    C 11 引入了强类型枚举 语法如下enum class 它们与整数类型不兼容 需要显式转换才能获取其数值 C 11 还引入了为弱类型枚举指定存储类的能力 格式如下enum name type 到这里为止都还好 但看起来即使弱类型枚举具有给
  • Boost 1.55 不适用于 Visual Studio 2013

    我已经正确编译了 boost 二进制文件并遵循了所有说明 但是我收到了很多错误 我不知道为什么 Here is my include setup 这是我用来测试 boost 的代码 include
  • 如何在login.vue中添加标题?

    如何更新 apolloProvider 的标头 请查看 nativescript vue 应用程序存储库 https github com kaanguru vue apollo login https github com kaangur
  • 如何使用 JQuery 替换

    怎样才能全部替换掉li of a ul在 JQuery 中 我不想使用以下方法将任何新项目添加到列表中append相反 我想要一个包含新内容的新列表li相同的元素ul 我努力了 for index 0 index lt users leng
  • SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行:外键约束失败

    我知道这是一个常见问题 但不知道这里出了什么问题 正如你所看到的 有这个 return user它显示了一个有效的ID 也在数据库中检查了这一点 user new User user gt first name data first nam
  • 显示系统警报“没有邮件帐户”

    目前我正在使用 MFMailComposeViewController canSendMail 检查设备中是否存在某个帐户 如果不是 我希望显示一些警报 我看到一个同类应用程序以本地化语言发出 无邮件帐户 警报 我想要同样的警报 它也应该本
  • Android 终端中的 Wget

    如何在 android 中的 Android 终端模拟器 应用程序中使用 wget 命令 它说 system bin sh wget 未找到 这意味着需要在android中安装wget 请帮我 你需要安装在你的Android系统中 你可以执
  • 是否可以在应用程序之间共享 Cuda 上下文?

    我想在两个独立的 Linux 进程之间传递 Cuda 上下文 使用我已经设置的 POSIX 消息队列 Using cuCtxPopCurrent and cuCtxPushCurrent 我可以获得上下文指针 但是这个指针是在我调用该函数的