小编Wus*_*uhn的帖子

__syncthreads()是否同步网格中的所有线程?

...或只是当前warp或块中的线程?

此外,当特定块中的线程遇到(在内核中)以下行时

__shared__  float srdMem[128];
Run Code Online (Sandbox Code Playgroud)

他们只会宣布一次这个空间(每个街区)吗?

它们都显然是异步操作所以如果块22中的线程23是到达该线的第一个线程,然后块22中的线程69是到达该线的最后一个线程,则线程69将知道它已经被声明了?

cuda

37
推荐指数
4
解决办法
6万
查看次数

R代表RAX,RBX,RCX,RDX,RSI,RDI,RBP,RSP?

x86汇编语言不得不改变,因为x86处理器架构已经从8位变为16位变为32位,现在变为64位.

我知道在32位汇编程序寄存器名称(EAX,EBX等)中,每个名称的E前缀代表扩展意味着32位形式的寄存器而不是16位形式(AX,BX等).

这些寄存器名称的R前缀在64位中代表什么?

x86 assembly x86-64 cpu-architecture cpu-registers

20
推荐指数
2
解决办法
2万
查看次数

在声明并初始化指针之后,何时在变量文字前加上星号,何时不?

普通文字是指地址,*literal是指地址的实际值?所以,后来:

int i = 0;
int *iPointer = &i;
Run Code Online (Sandbox Code Playgroud)

以下表达式将查找VALUE AT内存地址&i:

*iPointer
Run Code Online (Sandbox Code Playgroud)

以下将简单地产生内存地址&i:

iPointer
Run Code Online (Sandbox Code Playgroud)

我介入并验证了我的假设,但我想确定(你永远不会知道这些事情).

我想我只是对*符号在声明和访问中的不同目的感到困惑.

c c++

6
推荐指数
1
解决办法
152
查看次数

有没有办法在代码本身中增加Java堆空间?

可能重复:
是否可以动态更改最大Java堆大小?

我知道Java启动器有一个XMX选项,但是有一些预处理指令可以做到这一点(所以运行我的代码的所有计算机都会增加它们的堆).

就像现在一样,java.exe只能达到~280MB max(崩溃之前) - 这是正常的吗?

java memory jvm jvm-arguments

5
推荐指数
1
解决办法
4816
查看次数

支架[]操作符只能一次使用吗?

我最初认为它对指针和数组有不同的用途.在前一种情况下,它将括号中的任何内容添加到指针,然后取消引用总和; 在后一种情况下,它只会产生数组的第i个元素.

然后我意识到数组变量返回指向第一个元素的指针,因此操作符在每种情况下都做同样的事情:偏移和取消引用.

支架[]操作符确实只在C中有一次使用吗?

c arrays pointers

4
推荐指数
2
解决办法
5191
查看次数

是否可以更新/添加已填充的numpy直方图(特别是numpy.histogram2d)?

我已经用一对列表填充了numpy.histogram2d (x0,y0).我现在可以使用另外一对两个列表来增加直方图,(x1,y1)以便直方图包含(x0,y0)(x1,y1)吗?

相关的官方文档在这里:https: //docs.scipy.org/doc/numpy/reference/generated/numpy.histogram2d.html 在这个页面上我只看到参数和返回,但不是这个对象支持的函数.如何找到所有支持的功能?

python numpy histogram

4
推荐指数
1
解决办法
2105
查看次数

静态或堆栈分配的数组的可变大小元素是否驻留在堆空间中?

以下可能不依赖于平台,但无论如何我都会在Win 10 GCC上修复它.

假设您在main()的静态内存空间中创建一个数组或向量,其中包含每个可以变量大小的元素:

RADIAL_UNITS = 1000000;
static vector<Pearl> necklace[RADIAL_UNITS] = { }; 
//each element is a variable-sized vector, which can consist of anywhere from 1-50 Pearl objects 
Run Code Online (Sandbox Code Playgroud)

或者在main()中的堆栈上分配(假设堆栈空间设置为允许至少1000000个内存地址):

vector<Pearl> necklace[RADIAL_UNITS] = { }; 
Run Code Online (Sandbox Code Playgroud)

我假设在运行时,它necklaceRADIAL_UNITS连续的内存地址组成,指向vector<Pearl>元素.我不清楚的是(i)向量元素所在的内存空间(我怀疑堆空间).

我也感兴趣的附带问题:

我也不清楚(ii)编译器如何知道元素的大小是可变的.STL容器内部是否有定义的内容可以传达此信息?如果它们是固定大小的,我假设它们在字面上连续存在于我们分配数组的任何区域(第二种情况,即堆栈上的分配,可能会导致段错误,除非放大的默认堆栈空间) .(iii)我是否可以修改矢量元素的大小50*sizeof(Pearl),以便将它们分配到最初定义为数组的相同内存空间中?珍珠类型由两个烙印点编号组成,因此它们具有固定的尺寸.

c++ arrays memory-management stl

4
推荐指数
1
解决办法
53
查看次数

3
推荐指数
1
解决办法
6425
查看次数

在MATLAB中的一行中声明和初始化变量,而不使用数组或向量

a = 0;
b = 0;
c = 0;
Run Code Online (Sandbox Code Playgroud)

我可以在不使用数组/ vecor的情况下在一个语句中执行此操作吗?

matlab

3
推荐指数
1
解决办法
3148
查看次数

无法关闭文本文件,因为MATLAB在执行失败后使用它

我从命令窗口调用一个函数(包含fopen和fclose),然后在MATLAB遇到我修复的错误(程序的运行时在我保存更正后停止),我想删除它创建的文件,以便重复这个过程.然而,MATLAB,不知何故,仍然打开文件并输入fclose(f),在命令窗口中不会让MATLAB放开文件.

function something(something)
    f = fopen('something.txt', 'w');        
    %statments with fprintf  
    fclose(f);    
end
Run Code Online (Sandbox Code Playgroud)

matlab

3
推荐指数
1
解决办法
3004
查看次数