![](/img/trans.png)
[英]How can I split my parameter on node.js without creating an error for a default search
[英]How can I tell whether a copy-node search failed, or whether my node or graph are invalid?
考虑 CUDA 图 API 函数cuFindNodeInClone()
。 文件说,它:
退货:
CUDA_SUCCESS
,CUDA_ERROR_INVALID_VALUE
这对我来说似乎有问题。 我如何判断搜索是否失败(例如,因为图中没有传递节点的副本),或者节点或图是否只是无效的(例如,nullptr)? 第二个错误值是否表示两者? 我可以得到第三个没有提到的错误值吗?
使用运行时 API 时,如果克隆图中不存在原始节点,则返回的节点为 nullptr。 对于 nullptr 原始节点或 nullptr 克隆图,输出节点保持不变。
#include <iostream>
#include <cassert>
int main(){
cudaError_t status;
cudaGraph_t graph;
status = cudaGraphCreate(&graph, 0);
assert(status == cudaSuccess);
cudaGraphNode_t originalNode;
status = cudaGraphAddEmptyNode(&originalNode, graph, nullptr, 0);
assert(status == cudaSuccess);
cudaGraph_t graphclone;
status = cudaGraphClone(&graphclone, graph);
assert(status == cudaSuccess);
cudaGraphNode_t anotherNode;
status = cudaGraphAddEmptyNode(&anotherNode, graph, nullptr, 0);
assert(status == cudaSuccess);
cudaGraphNode_t nodeInClone = (cudaGraphNode_t)7;
status = cudaGraphNodeFindInClone(&nodeInClone, originalNode, graphclone);
std::cout << cudaGetErrorString(status) << " " << (void*)nodeInClone << "\n";
nodeInClone = (cudaGraphNode_t)7;
status = cudaGraphNodeFindInClone(&nodeInClone, nullptr, graphclone);
std::cout << cudaGetErrorString(status) << " " << (void*)nodeInClone << "\n";
nodeInClone = (cudaGraphNode_t)7;
status = cudaGraphNodeFindInClone(&nodeInClone, originalNode, nullptr);
std::cout << cudaGetErrorString(status) << " " << (void*)nodeInClone << "\n";
nodeInClone = (cudaGraphNode_t)7;
status = cudaGraphNodeFindInClone(&nodeInClone, anotherNode, graphclone);
std::cout << cudaGetErrorString(status) << " " << (void*)nodeInClone << "\n";
}
在我的 CUDA 11.8 机器上,打印
no error 0x555e3cf287c0
invalid argument 0x7
invalid argument 0x7
invalid argument 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.