问题标签 [memory-access]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
907 浏览

assembly - LEA 是 x86 中唯一具有不访问内存的内存操作数的指令吗?

我正在使用来自混蛋libdis的 x86 反汇编程序库,我试图找出哪些指令访问内存。

参考这两个指令:

libdis中,两者都以指令类型列出insn_mov,并且地址操作数在两种情况下都具有相同的标志。因此,我可以判断是否访问内存的唯一方法是查看指令助记符。

因此我的问题是:LEA 是唯一使用实际上不访问内存的内存操作数的指令吗?任何指向参考的链接都会很好。

0 投票
1 回答
147 浏览

cuda - 解决冲突 - 尝试合并 gmem 访问,使用 smem,但银行冲突

我有那个代码:

第二个:

有2个gmem(我的意思是全局内存)访问:1)读取Circle并检测与它的碰撞2)在改变它的速度和位置后写Circle我还有Circle的circlesConst-massive,它是由cudaMallocToSybol()分配的。它用于检查与从 gmem 读取的主圆 C(它在寄存器中)的圆的交集。

正如我所想,我很好地使用了 const 内存,它让我获得了所有的性能:')(我错了吗?)

当我读到对 gmem 的合并访问(是否有对其他类型的内存的合并访问?我没有找到任何有关它的信息)时,我想为我尝试一下。如您所见,Circle-structure 有 8 个类型为 float = 32 位的变量。我尝试(在代码中对其进行了注释)这样做,但是,首先,我得到了错误的答案(因为我必须不正确地从 smem 中读取,如下所述),其次,我的性能降低了 33%。为什么?我认为,它不依赖于错误的字段关系。

第二个问题,正如我在从 smem 到 C 的读取附近的代码中的注释中所写,我必须以另一种方式阅读,但如果这样做,将会有很多银行冲突,所以我会得到更少的性能...那么,我怎样才能加载没有银行冲突的合并的圈子,然后再将其写回?

ps 大小超过 4*float 的结构是否位于寄存器中?


更新: 最新版本是:

使用 smem 合并 gmem 访问权限是否正确?我的意思是,我害怕BlockDim.x * 1 / (CF - 1) + threadIdx.x / (CF - 1)。我想,我没有得到一些提升,因为它不允许 gmem 合并阅读超过一个圈子,但我不明白,如何让它合并两个圈子..

0 投票
1 回答
2750 浏览

python - 使用 Python 读写物理内存

有没有办法使用 Python 直接访问物理内存?我正在使用 Windows 7 x64 和 Python 2.7。例如,我想读取地址0xfb000000中存在的双字。然后写入相同/另一个内存地址。我尝试执行以下导致 Python 崩溃的代码。

崩溃可能是由于权限问题。那么,有没有办法以这种方式获得访问内存的权限?或者,有没有其他方法来完成读/写?我需要检查 PCI Express 配置空间中的一些寄存器。

0 投票
4 回答
1517 浏览

c - 使用指针和双指针访问时的性能差异

  1. 当我们使用指针和双指针访问内存位置时,有什么性能差异吗?
  2. 如果是这样,哪个更快?
0 投票
3 回答
54736 浏览

memory - 在实现高速缓存的系统中计算平均内存访问时间

我最近一直在解决这个概念上的很多问题。有时我发现有这种令人不安的不一致:

意思是,解决方案表明“M”的值是针对某些问题 X 计算的,如上面的“案例 1”,而在其他一些问题 Y 中,计算的值与上面的“案例 2”相同。我尽力分析这些问题,以找出使计算不同的因素是什么。没有帮助。我遇到过 X 和 Y 完全相同的情况,只是值不同,但在案例 1 中对 X 进行计算,在案例 2 中对 Y 进行计算。

我不知道的任何其他原因导致计算不同?先感谢您。

0 投票
1 回答
104 浏览

c++ - 不完整的全局内存访问是否合并?

它是否合并,如果n < warpSize

这种情况出现在循环的最后一次迭代中,如果一些N不能被warpSize. 我应该在这些情况下运行并分配设备内存只能被整除warpSize还是按原样合并?

0 投票
1 回答
763 浏览

c - 复制没有空格的字符串时内存访问错误

这是我的结构

我有一个复制字符串的功能(这将修剪空间)

这是调用 copyStringWithoutSpace 的函数

现在,此代码将返回错误的内存访问。我故障排除了这么久,无法解决。有人愿意帮助我吗?

0 投票
1 回答
58 浏览

c - 一个全局变量不能被赋值两次

我在做 TDD 时遇到了一些问题。我设计了这个功能:

使用我的 String 结构:

当我第一次调用这个 getWordAndUpdate 函数时它工作正常,但是当我第二次调用它时它说内存访问错误。

0 投票
1 回答
102 浏览

opencl - 如何为向量指令准备大量数据(OpenCL)?

我在 OpenCL 中进行数据并行处理,我想通过使用向量指令 (SIMD) 来增加吞吐量。为了使用 int4、double2 等,我需要梳理输入数据数组。做这个的最好方式是什么?

作为一个组合缓冲区或单独的缓冲区

N 可能高达 20000,现在翻倍。我正在使用 GCN GPGPU,首选双向量大小为 2。

- 我应该准备另一个内核来梳理特定向量宽度的数据吗?

- 我想 CPU 做同样的事情会很慢。

0 投票
1 回答
389 浏览

c - 外部数组使用导致访问冲突

我有一个

在一个 C 模块中声明,并在访问它的其他模块中声明适当的外部。

func1()我有这一行:

不会导致异常。然后我调用func2()另一个 C 模块(就在上面的行之后),并执行相同的行,即:

首先,抛出异常!!!

我不认为我有能力自己调试这个。

LS_vol_leds初始化任何东西之前func1()

我的外星人看起来像

extern LS_Led** LS_vol_leds;

那么这会导致灾难吗?我该如何预防灾难?

谢谢。