相关疑难解决方法(0)

cudaDeviceReset用于多个gpu

我目前正在开发一台拥有4台Tesla T10 gpu的gpu服务器.虽然我一直在测试内核并且必须经常使用ctrl-C终止进程,但我在简单设备查询代码的末尾添加了几行代码.代码如下:

#include <stdio.h>

 // Print device properties
 void printDevProp(cudaDeviceProp devProp)
{
    printf("Major revision number:         %d\n",  devProp.major);
    printf("Minor revision number:         %d\n",  devProp.minor);
    printf("Name:                          %s\n",  devProp.name);
    printf("Total global memory:           %u\n",  devProp.totalGlobalMem);
    printf("Total shared memory per block: %u\n",  devProp.sharedMemPerBlock);
    printf("Total registers per block:     %d\n",  devProp.regsPerBlock);
    printf("Warp size:                     %d\n",  devProp.warpSize);
    printf("Maximum memory pitch:          %u\n",  devProp.memPitch);
    printf("Maximum threads per block:     %d\n",  devProp.maxThreadsPerBlock);
    for (int i = 0; i < 3; ++i)
    printf("Maximum dimension %d of block:  %d\n", i, devProp.maxThreadsDim[i]);
    for (int i = …
Run Code Online (Sandbox Code Playgroud)

cuda

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

便携式捕获信号并向用户报告问题的方法

如果由于某些奇迹在我们的程序中发生了段错误,我想要捕获SIGSEGV并让用户(可能是GUI客户端)知道一个返回码,发生了严重的问题.同时我想在命令行上显示信息以显示捕获的信号.

今天我们的信号处理程序如下:

void catchSignal (int reason) {
  std :: cerr << "Caught a signal: " << reason << std::endl;
  exit (1);
}
Run Code Online (Sandbox Code Playgroud)

我可以听到上面的恐怖尖叫声,正如我从这个帖子中读到的那样,从信号处理程序中调用一个不可重入的函数是邪恶的.

是否有便携式方式处理信号并向用户提供信息?

编辑:或至少在POSIX框架内可移植?

c c++ posix signals reentrancy

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

标签 统计

c ×1

c++ ×1

cuda ×1

posix ×1

reentrancy ×1

signals ×1