11得票1回答
如何优化访问邻居的OpenCL代码?

编辑: 建议的解决方案结果已添加在问题末尾。 我开始使用OpenCL编程,并创建了一个问题的幼稚实现。 理论上: 我有一个三维网格元素,其中每个元素都有一堆信息(约200个字节)。每一步,每个元素访问其邻居信息并累积这些信息以准备更新自己。之后有一个步骤,每个元素使用之前收集的信息来更新自...

11得票3回答
实现缓存内存系统中计算平均内存访问时间

In order to find avg memory access time we have the formula : Tavg = h*Tc +(1-h)*M where h = hit rate (1-h) = miss rate Tc ...

10得票1回答
Solidworks,如何追踪解决Isldworks.CloseDoc中的内存访问冲突错误?

我在C#中的一个插件中有两个不同的函数。最近(显然)Solidworks在执行这两个函数的某些部分时崩溃了(可能还有更多,但目前我只发现这两个函数出现了问题)。在调试下,这两个函数都会给我一个“内存访问违规错误”。每次出现错误都是在关闭活动文档的那一行,并且大约95%的时间都会出现该错误。 ...

9得票5回答
如何优化内存访问模式/减少缓存失效,以适用于此数组抽取/下采样程序?

我最近被要求提供一段能够“就地”降采样/下采样数组的代码。这个“降采样”函数接受一个整数数组,并将数组中偶数索引i处的条目存储在索引i/2处。对于数组中所有条目都是如此。 这会将原始数组中的所有偶索引条目移动到数组的前半部分。然后可以将数组的其余部分初始化为0。总体结果是一个数组,保留了原始...

9得票3回答
堆栈中的变量如何访问?

假设我们有这些本地变量: int a = 0; int b = 1; int c = 2; int d = 3; 据我所知,这些将被分配在系统堆栈上,如下所示: | | | 3 | d | 2 | c | 1 | b |_0_| a 这是否意味着为了获得a的值,必须首先从堆栈中...

9得票1回答
以下汇编指令做了什么:将-8(%rbp)的值加到%xmm0寄存器中。

我正在尝试弄清楚这个汇编指令实际上是做什么的。 addsd -8(%rbp), %xmm0 我知道这是在x86-64机器上使用SSE2进行浮点加法。同时,我也知道%xmm0是一个寄存器。但我不确定的是-8(%rbp)是什么意思。手册对此有点混淆。 基本上,问题是,-8(%rbp)是...

8得票1回答
MinGW中是否有fmemopen()函数?

我正在尝试编译一些使用MinGW中的fmemopen函数的代码。我发现这个函数在MinGW中不可用。我需要一个等效于fmemopen()的函数。 有没有其他可替代的函数可以使用?

8得票3回答
如何在C语言中从“原始”内存中读取/写入类型值?

我该如何使这样的事情起作用呢? void *memory = malloc(1000); //allocate a pool of memory *(memory+10) = 1; //set an integer value at byte 10 int i = *(memory+10...

7得票3回答
在C++中,我能否通过(unsigned) char*读取任何可读的有效内存位置?

今天我的搜索工具好像有点不太靠谱。我想知道在标准C++中是否能够通过一个(无符号的(?))char *来检查“任何”内存地址,其中“任何”是指程序内任何对象或数组(或其内部)。所以我想请问这种操作是否合法。 举个例子: void passAnyObjectOrArrayOrSomethin...

7得票3回答
x86中,LEA是唯一一个带有内存操作数但不访问内存的指令吗?

我正在使用来自the bastard的 x86 反汇编库 libdis,并尝试查找哪些指令访问内存。 参考这两个指令: mov eax, [ebx + 10] lea eax, [ebx + 10] 在libdis中,这两种情况都列为指令类型insn_mov,并且地址操作数在两种情况下...