2012-08-24 2 views
6

전기 기술자는 최근에 CPU와 같은 하드웨어 보호 장치가 없다는 점에서 과학적 컴퓨팅 (예 : 정확도가 중요한 경우)에 GPU를 사용하는 것에 대해 저를 경고했습니다. 이것이 사실입니까, 그렇다면 일반적인 하드웨어에서 얼마나 보편적/실질적인 문제입니까?과학적 컴퓨팅을위한 GPU의 정확성

+0

그래 ... 맞아 ...로 만든 모든 대규모 컴퓨팅 클러스터 GPU는 완전히 쓸모 없으며 기본적으로 난수 생성기입니다. 모든 하드웨어에는 무작위 오류가있을 수 있습니다. 세라믹 패키지의 방사성 붕괴 사건에 의해 방출 된 단일 고 에너지 광자는 CPU 내부의 어딘가에서 비트를 뒤집어 완전히 시스템을 죽일 수 있습니다. 그렇지 않을 수도 있습니다. –

+0

@MarcB 나는 음모 이론가가 아닙니다! 과거의 문제에 대한 설명은 아래의 내 답변에있는 링크를 참조하십시오. 나는 이들이 최근의 하드웨어에서 적절하게 수정되었는지를 기본적으로 알고 싶다. –

답변

9

실제로 현대 GPU는 과학 컴퓨팅에 적합하며 많은 HPC 애플리케이션은 성능 및 에너지 효율성을 위해 GPU에서 실행되도록 최소한 부분적으로 포팅됩니다. 구형 GPU와 달리 최신 GPU (예 : NVIDIA의 Fermi 또는 Kepler 아키텍처 사용)는 단정도 및 배정도 모두에 대해 완전히 표준화 된 IEEE-754 형식을 제공하므로 최신 CPU에서와 마찬가지로이 기능을 사용할 수 있어야합니다 .

3

이것에 대한 몇 가지 (오래된) 논문을 찾았지만 컴퓨팅 능력이 2.0 이상인 카드에서 문제가 해결 된 것처럼 보입니다.

현재 GPU는 배정 밀도 연산을 지원하지 않으며, 이들 단 정밀도 지원은 IEEE-754 부동 소수점 표준 [1] 등을 중요한 측면 위에 글로스 정확하게 반올림 한 결과는 이고 숫자 시스템은 적절히 닫힙니다. ... 우리 결과는 비정규 숫자의 잘못된 처리 외에도 특정 엣지의 경우에 GPL 결과에 심각한 오류가 있음을 보여줍니다.

  • 칼 E. HILLESLAND 및 안셀모 라스트, "GPU 부동 소수점 망상을." Proc. GP2, 2004 년 8 월

  • GPUBench Test: Precision.

  • 기욤 다 성탄절 다윗 Defour, "그래픽 하드웨어에 플로트 플로트 사업자의 구현." Proc. 실수 및 컴퓨터에 7 회의, 2006 년 7 월

  • Wikipedia's CUDA limitations section

더블 정밀 (위의 CUDA 컴퓨팅 능력 1.3) [14]는 IEEE 754 표준에서 을 이탈 : 라운드에 -nearest- 역수, 나누기 및 제곱근에 대해서만 지원되는 반올림 모드는 입니다. 단 정밀도에서는 denormals 및 신호 NaN이 지원되지 않습니다. 두 개의 IEEE 반올림 모드 만 지원됩니다 (가장 가까운 반올림 및 반올림 ). 제어 단어에 이 아닌 명령 단위로 지정됩니다. 나누기/제곱근의 정밀도는 단 정밀도보다 약간 낮은 입니다. 측정 오차와는 크게 수레 배열 합산 같은 축퇴 경우 아마도 제외 (부동 소수점 올림에 의해 도입 된 에러를 압도하기 때문에

1

실제로 대부분의 과학적인 계산은 일반적으로, 저 정확하지 않아도 순서 대 반대 순서지만, CPU에서도 그런 종류의 이슈를 얻을 것이고 설계된대로 작동하기 때문에 아무 것도 경고하지 않을 것입니다.과학적 컴퓨팅에서는 일반적으로 특정 오차 범위 내에서 결과를 표시하고 마진이 실질적인 문제를 일으키지 않음을 보여주는 것으로 충분합니다.

부동 소수점은 CPU 에서조차 빠르고 정확하지는 않지만, 부동 소수점과 엡실론을 항상 비교하도록 가르쳐주는 이유이기도합니다.

OTOH, 실제로 회계 또는 숫자 이론 같은 마지막 자릿수까지 정확한 반올림 규칙이 필요한 계산에는 반올림 규칙을 정확하게 지정할 수있는 고정 소수점 산술 (예 : 십진수 모듈)을 사용해야합니다.

NVIDIA는 일반적으로 부동 소수점으로 특히 GPU에서 작업의 세부 사항을 커버하는 백서를 발표했습니다