GPU에서 실행함으로써 이익을 얻은 범용 알고리즘의 예? [닫은]


10

CPU보다 GPU에서 훨씬 빠르게 실행되는 것으로 입증 된 범용 알고리즘 (그래픽이 아닌 의미)의 예를 찾고 있습니다. 이 예제를 사용하여 GPU에서 구현할 수있는 다른 알고리즘에 대해 창의적으로 생각합니다.


문자열 연결, 수면 정렬
Job

답변:


10

몇 가지 사항이 즉시 떠 오릅니다.

암호화 된 해시를 수행하기 위해 GPU를 사용하도록 특수 비트 코인 클라이언트가 작성되었습니다. GPU 클라이언트는 일반적으로 일반적인 4 코어 시스템에서 SMP CPU 클라이언트보다 10 배 이상 성능이 우수합니다. 비트 코인은 병렬로 계산 될 수있는 많은 수의 관련되지 않은 암호화 해시 계산에 의존합니다.

홈 프로젝트 @ 접는 제공 자신의 분자 역학 시뮬레이션을위한 GPU 클라이언트. 이러한 계산은 다양한 환경과 조건에서 원자 사이의 개별 결합에 대해 수행됩니다. 수학은 비교적 간단하지만, 단지 나노초의 활동을 시뮬레이션하려면 각 결합에 대해 수십억 번 계산해야합니다.

GPU 컴퓨팅의 지지자가 사용하는 인기있는 "장난감"예제는 n-body 문제 입니다.

이 것들의 공통점은 그것들이 창피하게 평행 하다는 것 입니다. 즉, 문제는 큰 데이터 세트에 대해 여러 번 수행되는 소수의 이산 계산으로 분해 될 수 있습니다. 그것이 GPU가 잘하는 종류의 계산입니다.

이전 계산 결과에 의존하는 복잡한 계산은 GPU에 적합하지 않습니다.


여러 BOINC 클라이언트는 GPU를 지원합니다. 또 다른 SETI @ Home입니다.
Brian Knoblauch

과연. 그러한 프로젝트가 많이 있지만,이 프로젝트를 포괄적 인 프로젝트 목록으로 만들고 싶지는 않았습니다.
greyfade

8

비디오 및 오디오 트랜스 코딩이 좋은 예입니다. 한 파일 형식에서 다른 파일 형식으로의 변환입니다. 예를 들어 MPEG-2에서 H.264입니다.

참고 비디오 트랜스 코딩은 3D 그래픽과 관련이 없습니다. 정점 및 픽셀 셰이더를 사용하여 비디오를 인코딩 할 수 없습니다.


OP는 비 그래픽 관련 예제를 요구하고 있습니다.
kiamlaluno

6
@kiamlaluno 비디오 트랜스 코딩은 그래픽과 관련이 없으며 오디오 트랜스 코딩은 대부분 관련이 없습니다. 한 파일 형식에서 다른 파일 형식으로의 변환입니다. 예를 들어 MPEG-2에서 H.264입니다. 그래픽 표시가 필요하지 않습니다.
Thomas Owens

2
@kiamlaluno : 비디오 트랜스 코딩은 3D 그래픽과 관련이 없습니다. 정점 및 픽셀 셰이더를 사용하여 비디오를 인코딩 할 수 없습니다.
DeadMG

3

GPU를 사용하는 마이닝 비트 코인 은 매우 인기가 있습니다.

... 피어 투 피어, 전자 현금 시스템. 비트 코인 생성 및 전송은 오픈 소스 암호화 프로토콜을 기반으로하며 중앙 기관에서 관리하지 않습니다. 각 비트 코인은 소수점 이하 8 자리로 세분화되어 satoshis라고하는 1 억 개의 작은 단위를 형성합니다. 비트 코인은 중간 금융 기관없이 컴퓨터 나 스마트 폰을 통해 전송할 수 있습니다.

비트 코인 거래 처리는 비트 코인 채굴 자 서버에 의해 보호됩니다. 이 서버는 인터넷 기반 네트워크를 통해 통신하고 정기적으로 업데이트 및 보관되는 원장에 추가하여 트랜잭션을 확인합니다. 트랜잭션을 보관하는 것 외에도 각각의 새로운 원장 업데이트는 새로 채굴 된 비트 코인을 만듭니다.

또 다른 응용 프로그램은 Black-Scholes 와 같은 모델을 사용하여 실시간 거래를위한 금융 시장에 있습니다.

... 옵션을 활용하기위한 주요 요구 사항은 공정 가치를 계산하는 것입니다. 이 가격 문제를 효율적으로 해결하는 방법을 찾는 것은 30 년 이상 활발한 연구 분야이며, 현대 금융 공학의 초점이되고 있습니다. 재무 관련 문제에 더 많은 계산이 적용됨에 따라 현대 아키텍처에서 이러한 알고리즘을 구현하는 효율적인 방법을 찾는 것이 더욱 중요해졌습니다.

이 장에서는 GPU를 사용하여 옵션의 가격을 효율적으로 책정하는 방법에 대해 설명합니다. Black-Scholes 모델과 격자 모델의 두 가지 가격 모델을 사용하여 평가를 수행합니다. 이 두 가지 접근 방식은 모두 GPU에 잘 매핑되며 최신 CPU보다 GPU에서 훨씬 빠릅니다. 둘 다 GPU에 대한 직접적인 매핑을 가지고 있지만 격자 모델을 구현하려면 계산의 상호 의존성으로 인해 추가 작업이 필요합니다 ...


2

Conway의 Game of Life 는 좋은 학문적 예입니다.

... 생명의 게임의 우주는 사각형 세포의 무한한 2 차원 직교 그리드로, 각각 살아 있거나 죽은 두 가지 가능한 상태 중 하나입니다. 모든 셀은 가로, 세로 또는 대각선으로 인접한 8 개의 이웃과 상호 작용합니다. 각 단계에서 다음과 같은 전환이 발생합니다.

  1. 인구 부족으로 인한 것처럼 두 개 미만의 인접 이웃이있는 모든 라이브 셀이 죽습니다.
  2. 2 ~ 3 명의 라이브 이웃이있는 모든 라이브 셀은 다음 세대까지 계속됩니다.
  3. 마치 3 명 이상의 이웃이있는 살아있는 세포는 마치 붐비는 것처럼 죽습니다.
  4. 정확히 3 개의 살아있는 이웃을 가진 죽은 세포는 마치 생식에 의한 것처럼 살아있는 세포가됩니다.

초기 패턴은 시스템의 시드를 구성합니다. 첫 번째 세대는 씨앗의 모든 세포에 위의 규칙을 동시에 적용하여 만들어집니다. 출생과 사망이 동시에 발생하며, 이런 일이 발생하는 별개의 순간은 때때로 진드기라고합니다 (즉, 각 세대는 앞의 1). 더 많은 세대를 만들기 위해 규칙이 계속 반복적으로 적용됩니다 ...


1

동시에 수행 할 수있는 많은 수학이 필요한 문제. 내가 일했던 곳에서 우리는 유전자 상관 관계를 해결하기 위해 2 개의 행렬을 더하거나 빼거나 곱하기 위해 GPU와 함께 놀고 싶었습니다. GPU에 대해 처음 알게 된 것은 파이낸셜 소프트웨어 하우스에서 모델링 (몬테 카를로 등)을 수행하는 데 사용되었다는 것입니다. 코드를 깨는 데 유용합니다.

대부분의 일반 프로그램은 몇 개의 동시 프로세스 만 실행하면되기 때문에 GPU는 몇 개의 CPU 코어로 충분할 경우 일반적인 프로그래밍 문제를 해결하는 데 도움이되지 않을 것입니다. (현재보다 훨씬 빠른 메모리 / 디스크와는 다를 수 있습니다)


-3

어쩌면 나는 매우 수학 / 과학 / 엔지니어링 컴퓨팅에 특화되어 있지만 FFT 알고리즘입니다.

나는이 FFT 벤치 마크가 이전에 던져진 것을 보았습니다. 몇 년 전 이었지만 그게 잘 된 것 같습니다 : http://www.sharcnet.ca/~merz/CUDA_benchFFT

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.