GPU의 병렬 처리 기능을 사용하는 방법을 알고 싶습니다. 그러나 나는 그래픽을 열망하지 않는다. 나는 Cg 튜토리얼을 시도했지만, 그래픽 용어로 무겁다. 게다가, 나는 그러한 프로그램을 어떤 입출력에 어떻게 연결할 수 있는지를 파악할 수없는 것처럼 보인다.간단한 GPU 프로그래밍 (Cg?)
다음과 같은 매우 간단한 프로그램을 생각해 봅시다. 병렬 처리 (HDD 속도를 느리게 무시하십시오)에서 명백하게 이익을 얻을 수 있습니다 : 2 개의 파일에서 2 개의 큰 정수 배열을 읽고, 마지막 두 요소를 추가하여 새로운 배열을 만들고 저장소에 저장하십시오 다른 파일에 있습니다. 나는 그것을 테스트,하지만 난 C++에서 코딩 얼마나 먹으 렴하지 않았다 :
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
const int N=10000000;
int a[N],b[N],c[N];
ifstream a_source ("file_a",ios::binary);
ifstream b_source ("file_a",ios::binary);
ofstream c_target ("file_a",ios::binary);
a_source.read((char*)a,N*sizeof(int));
b_source.read((char*)b,N*sizeof(int));
for(int i=0;i<N;i++)
c[i]=a[i]+b[i];
c_target.write((char*)c,N*sizeof(int));
return 0;
}
당신이 정교시겠습니까 나는 이것에 대한 CG로 사용할 수있는 방법?
Cg에서 죽었습니까? 내가 아는 한 순수하게 쉐이더 언어이므로 범용 GPU 프로그래밍에 반드시 적합한 것은 아닙니다. 대신 CUDA 또는 OpenCL을 살펴보십시오. (주의 할 점 : 당신의 특별한 예제는 물론 사소한 셰이더이지만 그래픽 용으로 개발 된 API 대신 범용 API를 사용하는 것이 더 합리적이라고 생각합니다.) –
Cg는 그래픽의 경우 C이고 GPU의 경우 C가 아닙니다. GPGPU를 사용하여 GPGPU를 수행하려면 그래픽 처리가 어떻게 작동하는지 GPGPU를 매핑 할 수있는 방법을 알아야합니다. – KillianDS