2016-09-04 6 views
0

OpenACC 프로젝트에서 C의 floor/ceil 함수를 사용하려고합니다. 내가 값의 원자 적 업데이트를 만들고 싶을 때.OpenACC 및 floor/ceil 함수

PGCC-S-0155-잘못된 원자 식 PGCC-S-0155-잘못된 원자 영역 :

#pragma acc atomic update 
x=floor(x)+c 

컴파일러는 다음과 같은 메시지를 나타낸다.

무엇이 문제 일 수 있습니까?

답변

0

원자 연산은 +, -, * 및/또는와 같은 간단하고 직선적 인 연산을위한 것입니다. OpenACC 스펙 섹션 2.12 (Atomic Construct)를 보면 원자 구조에서 사용할 수있는 연산 목록을 볼 수 있습니다. 당신이 GPU에 floor을 할 수 있지만

그래서, 당신은 원자섹션에 그것을 할 수 없습니다.