4
A
답변
3
#define MYASSERT(condition) \
if (!(condition)) { return; }
MYASSERT(condition);
당신은 당신이 등록 된 개발자를위한 CUDA 사이트에서 사용할 수 cuPrintf()
을 사용할 수 있습니다 애호가 뭔가가 필요합니다.
7
이제 CUDA에는 네이티브 어설 션 기능이 있습니다. assert(...)
을 사용하십시오. 인수가 0이면 커널 실행을 중지하고 오류를 반환합니다. (또는 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. 메소드 내에서 assert 사용하기 - 파이썬
- 2. "assert '는이 범위 내에서 선언되지 않았습니다."MySQL ++
- 3. 리눅스 커널 라이센스 및 사용하기
- 4. 에코 내에서 include 사용하기
- 5. 루비의 커널 클래스에 assert() 메소드를 추가하는 관용적 인 루비인가?
- 6. ASSERT 대 ATLASSERT 대 assert
- 7. Rhino Mocks : "Assert"vs. "Assert"
- 8. 루프를 함수 내에서 사용하기
- 9. getRuntime() 내에서 인용문 사용하기 exec
- 10. 중복 리눅스 커널 시스템 호출
- 11. 커널 공간에서 VC 내장 함수 사용하기
- 12. 커널 내에서 포인터를 사용하는 CUDA 4.0 - 오류
- 13. 안드로이드 커널 내에서 화면 해상도를 변경하는 방법
- 14. Zend_Test : Assert 컨트롤러 실패
- 15. 클래스 메서드 내에서 클래스 메서드 내에서 같은 함수 호출 호출
- 16. 함수 내에서 함수 호출
- 17. 서비스 내에서 서비스 호출
- 18. foreach 내에서 함수 호출?
- 19. Assert 사용자 입력은 대문자입니다.
- 20. junit4 assert methods
- 21. NUnit : Dictionary Assert
- 22. 속성 집합에 파이썬 assert
- 23. Prolog - ASSERT and RETRACT
- 24. 커널 프로그래밍
- 25. PHP ISSET 함수 내에서 HTML 양식 사용하기
- 26. jsFiddle 내에서 jQuery 테마 (CSS) 사용하기
- 27. 대리자 내에서 메서드 호출 리디렉션
- 28. jQuery 플러그인 내에서 함수 호출
- 29. Dynamic Method define_method 내에서 호출
- 30. MVC 내에서 Jquery ajax 호출
매크로 정의의 끝에 세미콜론이 없어야한다 - 그 세미콜론이있을 것이다 매크로의 일반적으로 사용. 또한,'else()'키워드 바로 앞에 붙는 것을 피하기 위해 다음과 같이 구현하는 것을 고려해보십시오.'if (condition)/* do nothing * /; else' –
return 다음에 언제라도 __syncthreads()가 있으면 모든 스레드가 동일한 결정에 도달했는지 확인해야합니다. 그렇지 않으면 교착 상태에 빠질 수 있습니다. 또한 전역 메모리에서 부울 플래그 (예 : 호스트에서 true로 초기화 된 bool success)를 설정하여 이벤트를 나타낼 수 있습니다. 여러 스레드가 플래그에'false'를 쓰는 것은 중요하지 않습니다. 왜냐하면 항상 같은 값을 쓰고 있기 때문에 경주는 부적합합니다. – Tom
@ 톰 그건 사실이 아니야. 전역 메모리는 그런 종류의 사용을 위해 설계되지 않았으므로 동일한 전역 메모리 위치에 동시에 쓰는 여러 스레드의 결과는 예기치 않은 동작입니다. – Auron