初学者如何使用常量内存(Cuda C)

2023-11-24

我有 3 个常数值(A,B,C)我想将其保存在常量内存中;我通过输入以下代码行找到了一种方法:

// CUDA global constants
__constant__ int A;
__constant__ int B;
__constant__ int C;

int main(void)
{

    float pA=1;
    float pB=2;
    float pC=3;
    ...
    cudaMemcpyToSymbol(A, &pA, sizeof(A));
    cudaMemcpyToSymbol(B, &pB, sizeof(B));
    cudaMemcpyToSymbol(C, &pC, sizeof(C));
    ...
}

然而我相信这不是最好的方法,因为如果我有大量的常量,它会变得非常不方便。

这是我的问题:如何复制上面编写的代码行以获得更紧凑的形式?


CUDA中的常量内存是65536字节的专用内存空间。它是专用的,因为它有一些特殊的功能,如缓存和广播。

常量内存空间驻留在设备内存中,并缓存在计算能力1.x和计算能力2.x中提到的常量缓存中。

见教派。 5.3.2.设备内存访问和扇区。 G.4.4。 CUDA C 编程指南中的常量内存了解更多详细信息。

因此,您可以像以前一样为一个元素分配常量内存,也可以为一组元素分配内存。

__constant__ float c_ABC[3]; // 3 elements of type float (12 bytes)

然而,CUDA 中不允许动态分配常量内存。因此,您必须像处理一个元素一样将数据从 CPU 复制到 GPU。

float pABC[] = {1, 2, 3};
...
cudaMemcpyToSymbol(c_ABC, &pABC, 3 * sizeof(float));

你可以初始化pABC例如,在 CPU 中循环或从文件加载数据,然后将数据复制到 GPU 的常量内存中。

请注意,我已调整您的示例以使用始终浮动。

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

初学者如何使用常量内存(Cuda C) 的相关文章

  • 如何从字符串中提取子字符串直到遇到第二个空格?

    我有一个像这样的字符串 o1 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 如何仅提取 o1 1232 5467 要提取的字符数并不总是相同 因此 我只想提取直到遇到
  • 是否需要销毁运算符删除的形式才能真正销毁对象?

    C 20 添加了破坏形式operator delete区别于std destroying delete t范围 它导致delete表达式在调用之前不再销毁对象operator delete 目的是在显式调用对象的析构函数和释放内存之前 允许
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 如何使用 openSSL 函数验证 PEM 证书的密钥长度

    如何验证以这种方式生成的 PEM 证书的密钥长度 openssl genrsa des3 out server key 1024 openssl req new key server key out server csr cp server
  • 为什么 C 程序使用 Scanf 给出奇怪的输出?

    我目前正在学习 C 编程 并且遇到了这个奇怪的输出 Program will try functionalities of the scanf function include
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository

随机推荐

  • Google Visualization 堆叠条形图中的标签值和总计

    I am trying to display the value of each bar and then the total value of all bars in a stacked bar chart The problem is
  • 异常:应通过 PYTHONHASHSEED 禁用字符串哈希的随机性在 pyspark 中意味着什么?

    我正在尝试从 pyspark 中的列表创建字典 我有以下列表 rawPositions Gives 1009794 LPF6 Comdty BC22 Enterprise 3 0 3904 125 390412 5 1009794 LPF6
  • 逐步寻找 Activiti Alfresco Workflow 教程 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我在哪里可以找到 Activiti Alfresco 工作流程 尤其是自定义工作流程 的简单教程 我是 Alfresco Activiti Worf
  • 在 ASP.NET vNext 中,为什么代码不即时重新编译?

    我正在使用 k web 从命令行运行 HelloMvc 示例应用程序 我尝试使用 kvm use runtime 使用可用的不同环境来运行它 当我更改控制器并在浏览器中按 F5 或 Ctrl F5 时 代码不会自动重新编译 页面也不会更改
  • 使用Java遍历到最深处

    我有一个如下的数据结构 Task id name subTasks Task 但问题是子任务可以包含具有另一个子任务的任务 这可以运行得很深 如下所示 Task1 Contains SubTask1 SubTask1 包含其子任务 你可以理
  • 如果我声明为空白页(strict_types=1);在 PHP 7 中位于文件顶部

    最近我正在查看 PHP 7 特别是返回类型声明 and 类型提示 我已经从源代码编译了 PHP 7 来自Github 并在 Ubuntu 14 04 虚拟盒中运行它 我尝试运行以下代码来测试新的例外情况 但它给出了一个空白页
  • 熊猫合并df错误

    我有 3 个数据框正在尝试合并到 pandas 中 一个有 20 列 另外两个各有 2 列 它们的组织方式如下 eth price head n 3 Out 6 time eth price 0 8 28 17 16 19 344 021
  • 区分两个数组中的额外元素?

    我的一位朋友在接受采访时被问到这个问题 您已给出两个整数数组 每个数组的大小为 10 两者都包含 9 个相等的元素 比如 1 到 9 只有一个元素不同 你将如何找到不同的元素 您可以采取哪些不同的方法 一种简单但冗长的方法是 对两个数组进行
  • 创建 clickonce webdeploy 包

    是否可以构建一个包含可使用标准 webdeploy 工具部署到 Web 服务器的 clickonce 应用程序的 Web 部署包 这是理想的过程 MSBuild YourFullyQualifiedProjectName csproj vb
  • 美丽的汤和 Unicode 问题

    我正在使用 BeautifulSoup 来解析一些网页 有时我会遇到如下 unicode hell 错误 在 TheAtlantic com 上查看这篇文章的来源 http www theatlantic com education arc
  • WPF Converter 转换导致 Visual Studio 设计器异常

    如下所示的转换器将导致 2008 Visual Studio 设计器不显示 xaml 并错误显示 指定的转换无效 例外 public class ItemsVisibilityToGridColumnWidthConverter IMult
  • 无法手动关闭 matplotlib 绘图窗口

    我在 Mac OS X Yosemite 上运行 Python v2 7 和 matplotlib v1 5 0 直到最近 我能够在交互式解释器中运行脚本 显示绘图 然后手动终止窗口 例如 import numpy as np x np a
  • 如何安装libpython2.7.so

    我已经安装了Python 2 6 6 17 50 21 email protected which python usr local bin python 还有 Python 2 7 6 位于 17 51 12 email protecte
  • 享元模式中描述的内在状态和外在状态有什么区别?

    从本章开始FlyWeight内部图案四人帮FlyWeight模式适用当大多数对象状态可以成为外在的时候 什么是extrinsic state意思是 我感觉这个模式是用来共享对象的 如果要共享对象 那么该对象怎么可能有任何状态呢 让我们以文字
  • 如何更改角度材料排序图标

    我需要将默认箭头图标从角度材质 matSort 更改为自定义箭头 当前代码
  • C#:对象变量应该分配为 null 吗?

    在C 中 是否需要将一个对象变量赋值给null如果您已经使用完它 即使它超出了范围 不 这实际上可能是危险的并且容易出现错误 考虑一下有人可能稍后尝试使用它 但没有意识到它已被设置为空的可能性 仅当有合理理由将某些内容设置为 null 时
  • MS Access VBA 替换密码加密/解密

    谁能建议我如何实现替代密码风格 VBA中的加密和解密函数 我很欣赏散列被认为是更好的方法 但我需要可逆加密 非常感谢 您可以使用Blowfish 有一个可在 Access 中运行的 Visual Basic 6 版本 可在此处获取 http
  • 是否有函数可以获取区域设置字符串格式的 UTC 日期?

    我想在 JavaScript 中获取当前 UTC 日期 但以本地日期格式显示它 例如Date toLocaleDateString does 我首先尝试获取当前 UTC 日期Date toUTCString 但这实际上并没有以本地格式打印出
  • 奇怪的函数语法

    我看到一个奇怪的函数 看起来像这样 const x a gt b gt a b console log x 1 2 输出是 3 我知道它是一个返回函数的函数 并且 a 和 b 都在同一范围内 但我的问题是 这怎么能用在现实生活中呢 不使用带
  • 初学者如何使用常量内存(Cuda C)

    我有 3 个常数值 A B C 我想将其保存在常量内存中 我通过输入以下代码行找到了一种方法 CUDA global constants constant int A constant int B constant int C int ma