4
A
回答
3
#define MYASSERT(condition) \
if (!(condition)) { return; }
MYASSERT(condition);
,如果你需要的东西票友可以使用cuPrintf()
这可从CUDA网站注册的开发。
7
CUDA现在具有本机断言功能。使用assert(...)
。如果其参数为零,则会停止内核执行并返回错误。 (或者如果在CUDA调试中触发断点)。
确保包含“assert.h”。此外,这需要2.x或更高的计算能力,并且在MacOS上不受支持。有关更多详细信息,请参见CUDA C编程指南B.16节。
编程指南还包括下面的例子:
#include <assert.h>
__global__ void testAssert(void)
{
int is_one = 1;
int should_be_one = 0;
// This will have no effect
assert(is_one);
// This will halt kernel execution
assert(should_be_one);
}
int main(int argc, char* argv[])
{
testAssert<<<1,1>>>();
cudaDeviceSynchronize();
return 0;
}
相关问题
- 1. 调试断言使用CMFCPropertyGridFileProperty
- 2. 如何调用make内核模块调用或禁用中断?
- 3. 使用断言在Java中
- 4. 在内核中调用cublas
- 5. 从内核调用内核
- 6. 在中断内调用库
- 7. 断言在本地C++调试期间使用的断言/调试
- 8. 如何在Linux内核中断之后强制重新调用?
- 9. Linux内核 - 中断
- 10. 断言函数被调用
- 11. 使用断言使用JUnit
- 12. CUDA中的内核调用
- 13. C# - ;使用断言
- 14. cpu屏蔽和禁用内核中断
- 15. 调用CUDA内核
- 16. 递归调用中的断言?
- 17. 需要帮助了解Linux内核的BIOS中断调用
- 18. 断言模块在nodejs中的使用?
- 19. 在Chaijs断言中使用lengthOf.at.least
- 20. JsTestDriver在intellij中使用requirejs时断言
- 21. 如何在块中使用断言?
- 22. 如何在lex中使用lookbehind断言?
- 23. 在方法中使用断言 - Python
- 24. 如何在android中使用断言?
- 25. 在BDD步骤中使用断言
- 26. 在Rspec中使用“vanilla”断言?
- 27. CUDA:在内核中调用库函数
- 28. c调试断言调用fgets/fgetc/feof
- 29. 断言用MSTEST调用方法
- 30. 断言调试器断言失败
不应有在宏定义的端部分号 - 通常使用的宏将具有分号。另外,考虑像下面这样执行它,以避免它贪婪地附加到它可能发生的任何'else'关键字之前:'if(condition)/ * do nothing * /; else return' – 2010-01-17 09:10:14
如果在此之后的任何时候你有一个__syncthreads(),你应该确保所有的线程都达到相同的决定,否则你可能会死锁。此外,您可以在全局内存中设置一个布尔标志(例如,由主机初始化为“bool success”)来指示事件。不要紧,因为多个线程总是写相同的值,因此这个比赛是无关紧要的,因此多个线程将向该标志写入'false'。 – Tom 2010-01-17 20:09:42
@Tom这是不正确的。全局内存不是为这种用法而设计的,因此几个线程同时写入同一个全局内存位置的结果是意想不到的行为。 – Auron 2012-02-29 10:26:09