问题描述
我正在尝试使用 cudaGraphNode。除了向它传递参数之外,我已经让一切正常。它不会崩溃,但会给出完全不同的结果。例如:如果我通过 1337,在内核中将是 960051513。
这是我的代码:
#include <cuda_runtime.h>
#include "device_launch_parameters.h"
#include <cuda.h>
#include <iostream>
#include <chrono>
__global__ void TestKernel(int *value)
{
printf("Value: %d\n",*value);
}
void ExecuteTestKernel()
{
int* d_value;
cudamalloc((void **)&d_value,sizeof(int));
cudamemset(d_value,1337,sizeof(int));
cudaGraph_t graph;
cudaGraphCreate(&graph,0);
cudaGraphNode_t kernelNode;
void *kernelArgs[1] = {(void *)&d_value};
cudaKernelNodeParams kernelNodeParams = {0};
kernelNodeParams.func = (void *)TestKernel;
kernelNodeParams.gridDim = dim3(1,1,1);
kernelNodeParams.blockDim = dim3(1,1);
kernelNodeParams.sharedMemBytes = 0;
kernelNodeParams.kernelParams = kernelArgs;
kernelNodeParams.extra = NULL;
cudaGraphAddKernelNode(&kernelNode,graph,&kernelNodeParams);
cudaError_t e = cudaGetLastError();
if (e != cudaSuccess)
{
printf("Cuda failure %s:%d: '%s'\n",__FILE__,__LINE__,cudaGetErrorString(e));
exit(0);
}
cudaGraphExec_t graphInstance;
cudaGraphInstantiate(&graphInstance,NULL,0);
cudaGraphLaunch(graphInstance,0);
cudaFree(d_value);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)