- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用具有 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 = 0; i < 3; ++i)
printf("Maximum dimension %d of grid: %d\n", i, devProp.maxGridSize[i]);
printf("Clock rate: %d\n", devProp.clockRate);
printf("Total constant memory: %u\n", devProp.totalConstMem);
printf("Texture alignment: %u\n", devProp.textureAlignment);
printf("Concurrent copy and execution: %s\n", (devProp.deviceOverlap ? "Yes" : "No"));
printf("Number of multiprocessors: %d\n", devProp.multiProcessorCount);
printf("Kernel execution timeout: %s\n", (devProp.kernelExecTimeoutEnabled ? "Yes" : "No"));
return;
}
int main()
{
// Number of CUDA devices
int devCount;
cudaGetDeviceCount(&devCount);
printf("CUDA Device Query...\n");
printf("There are %d CUDA devices.\n", devCount);
// Iterate through devices
for (int i = 0; i < devCount; ++i)
{
// Get device properties
printf("\nCUDA Device #%d\n", i);
cudaDeviceProp devProp;
cudaGetDeviceProperties(&devProp, i);
printDevProp(devProp);
}
printf("\nPress any key to exit...");
char c;
scanf("%c", &c);
**for (int i = 0; i < devCount; i++) {
cudaSetDevice(i);
cudaDeviceReset();
}**
return 0;
}
最佳答案
看起来您可以向 GPU 程序添加一个函数来捕获 ctrl+c 信号 (SIGINT) 并为程序使用的每个设备调用 cudaDeviceReset() 函数。
可以在此处找到在捕获 SIGINT 时调用函数的示例代码:
https://stackoverflow.com/a/482725
为您编写的每个 GPU 程序都包含这样的代码似乎是一个好习惯,我也会这样做:-)
我没有时间写出完整详细的答案,所以请阅读其他答案及其评论。
关于多个 gpu 的 cudaDeviceReset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144195/
#include "cuda_runtime.h" #include "device_launch_parameters.h" #include __global__ void funct(void
我目前正在使用具有 4 个 Tesla T10 gpu 的 gpu 服务器。当我不断测试内核并且不得不经常使用 ctrl-C 终止进程时,我在一个简单的设备查询代码的末尾添加了几行。代码如下: #in
当您调用 cudaDeviceReset() 时,是否会使范围内的任何 thrust::device_vectors 不可用? thrust::host_vector h_intVec; thrust
我已经使用 CUDA 流实现了以下类 class CudaStreams { private: int nStreams_; cudaS
关于 cudaDeviceReset() 的正确使用存在各种问题,但我无法找到以下问题的答案。 cudaDeviceReset() 上的文档说它明确销毁并清除当前进程中与当前设备关联的所有资源。 假设
我使用 CUDA Visual Profiler 分析我的 CUDA 项目,但它显示消息 "Unable to read the entire session timeline. the displa
我是一名优秀的程序员,十分优秀!