小编las*_*gar的帖子

cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize

这三个功能有什么区别,尤其是后两个功能?图书馆手册说

请注意,不推荐使用此函数,因为其名称不反映其行为.它的功能类似于非弃用函数cudaDeviceSynchronize(),应该使用它.

但不太确定它是什么意思.

cuda

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

21
推荐指数
3
解决办法
5471
查看次数

计算FLOPS(每秒浮点运算)

如何计算我的申请的FLOPS?如果我有执行指令的总数,我可以将它除以执行时间.但是,如何计算执行指令的数量?

我的问题是一般性的,任何语言的答案都受到高度赞赏.但我希望找到一个由C/C++和CUDA开发的应用程序解决方案.

我不知道标签是否合适,如果我错了请纠正我.

c c++ gdb cuda gpu

8
推荐指数
2
解决办法
8421
查看次数

NVCC 5.0和OpenACC

根据NVIDIA网站:

"CUDA工具包补充并完全支持使用OpenACC指令进行编程."

这是否意味着可以使用编译nvcc器编译OpenACC程序(pargma和API)?或者它意味着只支持运行时例程调用?

不幸的是,我现在无法安装CUDA Toolkit 5.0来获得我的答案.谢谢!

cuda nvcc openacc

7
推荐指数
1
解决办法
2080
查看次数

分析我的CUDA内核的内存访问合并

我想通过BS_x读取(BS_X + 1)*(BS_Y + 1)全局存储器位置*BS_Y线程将内容移动到共享存储器,我开发了以下代码.

int i       = threadIdx.x;
int j       = threadIdx.y;
int idx     = blockIdx.x*BLOCK_SIZE_X + threadIdx.x;
int idy     = blockIdx.y*BLOCK_SIZE_Y + threadIdx.y;

int index1  = j*BLOCK_SIZE_Y+i;

int i1      = (index1)%(BLOCK_SIZE_X+1);
int j1      = (index1)/(BLOCK_SIZE_Y+1);

int i2      = (BLOCK_SIZE_X*BLOCK_SIZE_Y+index1)%(BLOCK_SIZE_X+1);
int j2      = (BLOCK_SIZE_X*BLOCK_SIZE_Y+index1)/(BLOCK_SIZE_Y+1);

__shared__ double Ezx_h_shared_ext[BLOCK_SIZE_X+1][BLOCK_SIZE_Y+1];     

Ezx_h_shared_ext[i1][j1]=Ezx_h[(blockIdx.y*BLOCK_SIZE_Y+j1)*xdim+(blockIdx.x*BLOCK_SIZE_X+i1)];

if ((i2<(BLOCK_SIZE_X+1))&&(j2<(BLOCK_SIZE_Y+1))) 
Ezx_h_shared_ext[i2][j2]=Ezx_h[(blockIdx.y*BLOCK_SIZE_Y+j2)*xdim+(blockIdx.x*BLOCK_SIZE_X+i2)];
Run Code Online (Sandbox Code Playgroud)

根据我的理解,合并是顺序处理的连续内存读取的并行等价物.现在如何检测全局内存访问是否已合并?我注意到从(i1,j1)到(i2,j2)的索引跳转.提前致谢.

shared cuda

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

在linux中检查库中是否存在函数

在动态链接期间,会出现一个奇怪的未定义函数引用.我知道应该包含此函数的库的名称.是否有任何Linux命令来确保库中存在该函数(.a文件)?

c++ linux shared-libraries

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

std ::为数组中的每个元素设置

我需要一个std::set数组中每个元素的功能.我该如何实现此功能?

我开始在C++中分配std set的动态数组,如下所示:

set<int>* entry;
Run Code Online (Sandbox Code Playgroud)

然后分配:

entry = (set<int>*)malloc(sizeof(set<int>)*32);
Run Code Online (Sandbox Code Playgroud)

没有编译问题,但是当访问任何元素时,运行时失败并出现分段错误:

entry[0].insert(23);
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常感谢.

c++ arrays memory-management vector set

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

检测到数组访问冲突

我修改了模拟器的一小部分,但我遇到了奇怪的分段错误.GDB显示错误出现在我没有修改过的类中.我猜我的代码在访问自己的数组时有内存访问冲突,因此会破坏其他数组的内容(在程序内存空间中分配).是否有任何调试工具来检测数组外绑定但程序内空间访问?

c c++ gdb memory-management

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

从$ PATH中排除特定目录

我的系统上有多个MPI变体.每个用于编译特定的应用程序.我正在寻找一个脚本来从$ PATH中排除特定目录,以使用相应的MPI包装应用程序.有没有简单的方法呢?

unix linux bash

2
推荐指数
1
解决办法
601
查看次数

C/C++中未保留的字符

我需要<在C/C++代码文件中编码所有出现的字符.为了防止冲突,我需要知道C/C++标准中没有保留哪些字符.例如,如果$没有保留,我可以暂时编码<,$然后恢复原始的C/C++代码.

我需要使用类似XML的中间语言对我的C/C++代码进行编码.

提前致谢.

c c++ parsing

0
推荐指数
1
解决办法
211
查看次数

标签 统计

c++ ×5

cuda ×4

c ×3

linux ×3

bash ×2

gdb ×2

memory-management ×2

arrays ×1

gpu ×1

nvcc ×1

openacc ×1

parsing ×1

set ×1

shared ×1

shared-libraries ×1

shell ×1

unix ×1

vector ×1