使部分(但不是全部)(CUDA) 内存访问不被缓存

2023-12-12

我只是注意到(CUDA 内核)内存访问完全有可能不被缓存(参见例如这个答案在这里).

这可以吗...

  • 对于单个内核?
  • 在运行时而不是在编译时?
  • 仅用于写入而不是读取和写入?

  1. 仅当您单独编译该内核时,因为这是通过代码生成启用的指令级功能。您还可以使用内联 PTX 汇编器来发出ld.global.cg内核中特定加载操作的指令[参见here详情]。
  2. 不,这是 PTX 的指令级功能。您可以在运行时 JIT 包含非缓存内存加载的代码版本,但这在技术上仍然是编译。您可能可以使用一些模板技巧和单独编译来让运行时保存使用或不使用缓存构建的同一代码的两个版本,并在运行时在这些版本之间进行选择。您还可以使用相同的技巧来获取给定内核的两个版本,无论是否有内联 PTX 用于未缓存加载 [请参阅here实现这一目标的一种可能性]
  3. 这些非缓存指令以字节级粒度绕过 L1 缓存到达 L2 缓存。因此它们只是加载(所有写入都会使 L1 缓存无效并存储到 L2)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使部分(但不是全部)(CUDA) 内存访问不被缓存 的相关文章

  • __builtin___clear_cache 如何工作?

    浏览 gcc 文档 我偶然发现了内置函数 builtin clear cache 内置函数 void builtin clear cache char begin char end 此函数用于刷新处理器的指令缓存 以获取开始包含和结束排除之
  • CUDA 模型 - 什么是扭曲尺寸?

    最大工作组大小和扭曲大小之间有什么关系 假设我的设备有 240 个 CUDA 流处理器 SP 并返回以下信息 CL DEVICE MAX COMPUTE UNITS 30 CL DEVICE MAX WORK ITEM SIZES 512
  • Laravel cache::remember 将对象作为数组返回

    Laravel Cache remember正在返回一个LengthAwarePaginator作为数组的对象 function getNotifications userID values Cache remember cache key
  • 缓存施瓦茨变换

    我正在学习 中级 Perl 它非常酷 我刚刚读完 施瓦茨变换 部分 在理解它之后 我开始想知道为什么变换不使用缓存 在具有多个重复值的列表中 转换会重新计算每个值的值 因此我想为什么不使用哈希来缓存结果 这是一些代码 a place to
  • 使用 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
  • 如何找出英特尔处理器上的指令触及了哪条高速缓存线?

    我读了这篇文章关于 Meltdown Spectre 漏洞利用 http www theregister co uk 2018 01 04 intel amd arm cpu vulnerability 允许利用 CPU 中的硬件错误从内核
  • 无法在 CUDA 中找到 1 到 100 数字的简单和?

    我正在研究使用 CUDA 的图像处理算法 在我的算法中 我想使用 CUDA 内核找到图像所有像素的总和 所以我在cuda中制作了内核方法 来测量16位灰度图像的所有像素的总和 但我得到了错误的答案 所以我在cuda中编写了一个简单的程序来查
  • 我们如何在每次运行时使用不同的种子在 CUDA C 中生成随机数?

    我正在研究一个随机过程 我想在每次运行程序时在 CUDA 内核中生成不同的系列随机数 这类似于我们在 C 中声明 种子 时间 空 接下来是 srand 种子 和兰特 我可以通过内核将种子从主机传递到设备 但是 这样做的问题是我必须将整个种子
  • 无法编译cuda_ndarray.cu:libcublas.so.7.5:无法打开共享对象文件

    我正在尝试在 aws 实例中导入 theano 库以使用 GPU 我已经使用 boto 编写了一个 python 脚本来自动执行 aws 设置 该脚本本质上会从我的本地计算机对实例执行 ssh 然后启动一个 bash 脚本 其中我执行 py
  • Laravel 模型访问器从缓存中获取 - 性能增强

    我在数据库中有一个项目列表 每个项目都可以选择被否决或赞成 这些投票与其他项目字段一起存储在 MySql 中 例如这样的事情 Schema create items function table table gt increments id
  • 对 CUDA 操作进行计时

    我需要计算 CUDA 内核执行的时间 最佳实践指南说我们可以使用事件或标准计时函数 例如clock 在Windows中 我的问题是使用这两个函数给出了完全不同的结果 事实上 与实践中的实际速度相比 事件给出的结果似乎是巨大的 我实际上需要这
  • getExternalCacheDir() 在 Android 上如何工作?

    据我了解 我们将经常访问的对象缓存在比普通磁盘读取更容易访问的内存段中 getExternalCacheDir 相对于getCacheDir 指向外部文件系统 在我看来这是正常的getExternalFilesDir Android 如何优
  • CUDA-Kernel 应该根据块大小动态崩溃

    我想做稀疏矩阵 密集向量乘法 假设用于压缩矩阵中条目的唯一存储格式是压缩行存储 CRS 我的内核如下所示 global void krnlSpMVmul1 float data mat int num nonzeroes unsigned
  • 布尔实现的atomicCAS

    我想弄清楚是否存在错误答案 https stackoverflow com a 57444538 11248508 现已删除 关于Cuda like的实现atomicCAS for bool是 答案中的代码 重新格式化 static inl
  • CUDA 代码会损坏 GPU 吗?

    在测试包含内存错误的 CUDA 时 我的屏幕被冻结了 重新启动后我无法再检测到显卡 我的代码是否有可能物理损坏该卡 这发生在 Ubuntu 14 04 下 我不知道该卡的型号 因为我无法检测到它 但我记得它是一张相当新的卡 感谢所有的评论我
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • Blue Dragon Coldfusion 服务器缓存问题

    我有一个在 ColdFusion MVC 框架 Mach II 中构建的应用程序 并托管在蓝龙 ColdFusion 服务器上 它会导致缓存问题 当我添加一个包含一些内容的新页面并加载该页面时 它工作正常 但是 当我在同一个文件中进行一些更
  • 使用键模式从 Laravel 4 缓存中删除?

    对于我的包 我们使用 Laravel 缓存 我们创建的每个缓存键都有前缀 所以我们得到mypackage config mypackage md5ofafilename有时我需要刷新我的包创建的所有缓存文件 问题是什么 我只知道缓存键的模式
  • 在apache中有条件地设置缓存头

    我想根据访问文件的路径有条件地设置缓存标头 基本上 访问http www example com cache cache key 应该为具有遥远未来缓存标头的文件提供服务 我使用重写规则来设置环境变量 然后尝试根据该变量设置缓存控制标头 然

随机推荐

  • 解析异常:在第 1 行第 0 列:未找到元素

    我有一个奇怪的问题 我收到以下导致强制关闭的错误 org apache harmony xml ExpatParser ParseException 在第 1 行第 0 列 在 org apache harmony xml ExpatPar
  • 将 Java 中的加密代码转换为 Ruby

    我一直在尝试将java中的加密代码转换为ruby 但我无法完全做到这一点 我得到不同的价值观 passphrase passphrase STATIC KEY byte key passphrase getBytes UTF 8 Messa
  • 在 Ubuntu 上绘制大型示波器文件时出现内存错误

    我正在尝试读取大型示波器 trc文件并绘制它们 绘制一个文件是可行的 但是一旦我将脚本放入循环中 尝试绘制所有文件 1 个文件一个循环 我就会得到一个MemoryError Code import os import pandas as p
  • 使用 Adob​​e CQ5 的外部数据库?

    有什么办法可以连接外部数据库吗mysql可以连接到Adobe CQ5 Adobe cq5 中的 JCR Java Content Repository 现在默认连接到 H2 数据库 如何使其使用 sql mysql 转到 system co
  • 如何强制 Visual Studio 引用本地企业库 DLL 文件而不是已安装的目录文件

    我有一个引用企业库 DLL 的 asp net 项目 我可以构建和部署我的项目 但部署构建失败 因为它找不到 DLL 例如 我查看了 Microsoft Practices EnterpriseLibrary Common 的属性 我注意到
  • 我可以在 OpenCV 中使用重映射来获取点位置吗

    我拍了一张照片A使用 RGB 相机 我知道一个点的位置g在照片中A 相机需要进行相机校准 现在我想知道点的位置g校准后 我使用的代码如下 但我想获取点位置 而不是图像 我怎样才能做到这一点 你能给我一些建议吗 initUndistortRe
  • jquery 选项卡的下一个-上一个功能

    我需要在单击 Next 和 Prev html 按钮时为 jquery 选项卡提供 Next Prev 功能 我在用jquery 1 9 1 js and jquery ui 1 10 2 custom js文件 我已经实现了下面的代码 但
  • 如何使用sql定义的函数作为字段?

    我正在使用 SQL 在 Sql Management Studio 2012 中创建表 如何使用 Sql Server 中已定义的名称 例如 User ID User Name 创建字段或列 我想将它们用作表中的字段 表定义来自重复帖子 c
  • VB6代码升级[重复]

    这个问题在这里已经有答案了 可能的重复 从 VB6 迁移到 NET 的最佳策略 Visual Basic 6 0 转换工具比较 有没有任何人都可以推荐的好工具来将商业 VB6 应用程序转换为 VB NET 应用程序 我发现了一些免费的和一些
  • 尝试对 python httplib 中无法访问的网络进行套接字操作

    我正在尝试使用 httplib 从 django 创建 REST 客户端 但它拒绝连接 我尝试了以下方法 import hashlib import hmac from django shortcuts import render to r
  • 更新期间 MS Access 字段过多

    当我尝试在 MS Access 中更新表时 它给出错误 指出定义的字段太多 我用谷歌搜索 发现我需要修复和压缩 我做了 但仍然不起作用 有人有什么想法吗 另外 什么实际上算作 太多字段 计数器 Thanks 我似乎找到了答案 Microso
  • 在保存之前删除不会失效:是真的吗?

    我的情况 我有复杂的 24 个实体 许多关系和许多有序对多关系 模型Core Data 现在假设我有一个实体PlayList和一个实体Song 并在PlayList有序对多关系Song 这种关系存在逆关系 并且两者都有nullify删除规则
  • 计算文件中每一列的平均值

    我有一个包含 n 行 以逗号分隔 和列的文本文件 我想找到每列的平均值 不包括空字段 示例输入如下所示 1 2 3 4 6 7 期望的输出是 2 5 4 5 4 5 我尝试过 awk F for i 1 i lt NF i sum i su
  • C# - 将对象保存到 JSON 文件

    我正在编写一个 Windows Phone Silverlight 应用程序 我想将对象保存到 JSON 文件 我写了下面的代码 string jsonFile JsonConvert SerializeObject usr Isolate
  • 使用批处理运行带有参数的exe

    如何将参数传递到运行 exe 的批处理文件中 我有一个需要 2 个参数的程序 我想使用具有定义参数的 bat 文件运行它 5 五次 像这样的东西 FOR L G IN 1 1 5 DO start path program exe 20 1
  • 为什么 gcc 和 clang 为 std::find 生成这么多代码?

    我在 godbolt org 中输入以下代码 并使用 gcc 10 1 和 clang 10 编译它 include
  • 按键表达式存储静态过滤器

    我有一个函数 当传入一个时 它会生成一个表达式来通过主键过滤表Object 这非常类似于Find函数 只是它没有实现 所以你可以传递一个IQueryable之后周围 public static Expression
  • 使用标头过滤代理响应标头

    我有一个上游服务器 它经常通过返回 Set Cookie 响应标头来设置 Cookie 我想在上游服务器前面有一个 nginx 代理 Browser gt Nginx gt Upstream If the Browser gt Nginx请
  • 引用如何绑定到纯右值?

    cppreference 说 当引用绑定到纯右值时 会创建一个临时对象 它们是指 const 左值引用和右值引用吗 当纯右值具体化时 会创建临时对象 以便将其用作左值 这会在以下情况下发生 C 17 起 将引用绑定到纯右值 如果他们的意思是
  • 使部分(但不是全部)(CUDA) 内存访问不被缓存

    我只是注意到 CUDA 内核 内存访问完全有可能不被缓存 参见例如这个答案在这里 这可以吗 对于单个内核 在运行时而不是在编译时 仅用于写入而不是读取和写入 仅当您单独编译该内核时 因为这是通过代码生成启用的指令级功能 您还可以使用内联 P