GPU 프로그래밍에서는 Early Return이 필수이다
CUDA의 경우에
하나의 warp에 16개의 thread가 동시에 연산을 처리한다
그중 한 개의 thread가 다른 작업을 한다면
나머지 thread들은 wait 상태로 있어야 한다
따라서, GPU 프로그래밍에서는 thread가 더 이상 필요하지 않으면
warp에서 thread를 없애주는 방식으로 코드를 작성하는 것이
당연하다
이를 CPU 프로그래밍에서 활용하면
성능 향상과 코드 가독성을 보장하고
오류 처리가 더욱 쉬워진다
Early Return을 사용하지 않는 일반적인 코드는 아래와 같다
bool vaccinate(Cat& cat)
{
if (1 <= cat.age())
{
if ('female' == cat.gender())
{
if (false == cat.hasAntibody())
{
inject();
rest();
secondInject();
blood();
return true;
}
}
}
return false;
}
Early Return을 사용하는 코드는 아래와 같다
bool vaccinate(Cat& cat)
{
if (1 <= cat.age())
{
return false;
}
if ('female' == cat.gender())
{
return false;
}
if (false == cat.hasAntibody())
{
return false;
}
inject();
rest();
secondInject();
blood();
return true;
}
'C++ > [노코프] Tips' 카테고리의 다른 글
[C++ Tips] If 중첩문의 가독성 문제 (0) | 2024.11.13 |
---|---|
[C++ Tips] Data oriented Programming (0) | 2024.04.08 |
[C++ Tips] Function Overloading (0) | 2024.04.08 |
[C++ Tips] 싱글톤 (0) | 2024.04.07 |
[C++ Tips] static (0) | 2024.04.07 |