我渴望了解如何使用 GPU 的并行处理能力。但是,我并不急于制作图形!我尝试了 Cg 的教程,但它似乎很重的图形术语。此外,我似乎无法掌握如何将这样的程序连接到某些输入和输出。
让我们考虑以下非常简单的程序,它显然可以从并行性中受益(忽略缓慢的 HDD 速度):从 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 来做这个吗?