资源描述:
《基于GPU通用计算程序包.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于GPU的通用计算程序包说明文件——函数说明编写:柳有权最新时间:2004年1月14日星期三不断完善中,随时更新v基本代数运算:Ø矢量与矢量的加法、减法、乘法Ø矢量与标量的乘法Ø矢量与一般矩阵的乘法Ø一般矩阵与一般矩阵的乘法Ø矢量本身的消减运算(求最大、最小元素,求范数,求和,求内积)Ø矢量与稀疏矩阵的乘法v线性方程组求解:Ø高斯-赛德尔迭代法Ø松弛法Ø雅可比法Ø最速下降法Ø共轭梯度法v具体函数说明及使用说明:1.矢量与矢量的运算函数名:voidclVecOp(OperationOnGPUEnu
2、mop,constfloata,constfloatb,constCVectorOnGPU&x,constCVectorOnGPU&y,CVectorOnGPU&result)功能:计算两个矢量之间的运算,采用的模式为RegisterCominber。这里提供了加,减,乘,形式如下:Vector(result)=aVector(x)opbVector(y)输入参数:a,b,x,y,这里标量a与b的值没有范围限制,正负都可以OperationOnGPUEnumop—运算类型constfloata—第
3、一个矢量的系数constfloatb—第二个矢量的系数constCVectorOnGPUx—第一个矢量constCVectorOnGPUy—第二个矢量输出参数:CVectorOnGPUresult—运算结果要求:两个矢量维数一样,在调用该函数之前,需要先初始化x、y、result用x.SetData(Vx,DIM_TEST);y.SetData(Vy,DIM_TEST);result.SetData(NULL,DIM_TEST);相关文件·VectorOnGPU.cpp+VectorOnGPU.h
4、·VectorVectorOperation.cpp+VectorVectorOperation.hvoidclVecOpFP(OperationOnGPUEnumop,constfloata,constfloatb,constCVectorOnGPU&x,constCVectorOnGPU&y,CVectorOnGPU&result)功能:计算两个矢量之间的运算,采用的模式为FragmentProgram,需要读入文件。这里提供了加,减,乘,形式如下:Vector(result)=aVector
5、(x)opbVector(y)输入参数:a,b,x,y,这里标量a与b的值没有范围限制,正负都可以OperationOnGPUEnumop—运算类型constfloata—第一个矢量的系数constfloatb—第二个矢量的系数constCVectorOnGPUx—第一个矢量constCVectorOnGPUy—第二个矢量输出参数:CVectorOnGPUresult—运算结果要求:从文件add.fp读入加法FragmentProgram从文件sub.fp读入减法FragmentProgram从文
6、件mul.fp读入乘法FragmentProgram两个矢量维数一样,在调用该函数之前,需要先初始化x、y、result用x.SetData(Vx,DIM_TEST);y.SetData(Vy,DIM_TEST);result.SetData(NULL,DIM_TEST);floatclVecReduceFP(OperationOnGPUEnumcmb,constCVectorOnGPU&x)功能:对矢量进行消减运算,采用的模式为FragmentProgram,需要读入文件。形式如下:scalar
7、(result)=sum/normal/max/min/abs--->Vector(x)输入参数:a,b,x,y,这里标量a与b的值没有范围限制,正负都可以OperationOnGPUEnumcmb—运算类型constCVectorOnGPUx—第一个矢量输出参数:floatresult—函数返回运算结果要求:从文件normal.fp读入元素累加的FragmentProgram从文件max.fp读入求最大元素的FragmentProgram从文件min.fp读入求最小元素的FragmentProg
8、ram在调用该函数之前,需要先初始化x调用x.SetData(Vx,DIM_TEST);floatclInnerProductFP(constCVectorOnGPU&x,constCVectorOnGPU&y)功能:计算矢量与矢量的点积运算,采用的模式为FragmentProgram,需要读入文件。形式如下:returnx⊙y输入参数:a,b,x,y,这里标量a与b的值没有范围限制,正负都可以constCVectorOnGPUx—第一个矢量constCVectorOnGPUy—第