Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
并行乘法向量矩阵 我在C++中编码,我有一个矩阵< /> >和一个必须被乘以的向量< /代码>。这两个类都是我定义的,都包装了一个1-Dstd::vector;数据类型为long-long-int 我已经用std::threads对代码进行了并行化,但现在我想利用我的NVIDIA GPU,用CUDA对乘法进行编码。为了让我的手尽可能干净,你知道是否有一个实现这种算法的库,并且我可以很容易地使用它吗?我已经看到有推力,但从它看来并不完全是我所寻找的,相反,这将是类似的东西 std::vector vec = ...; std::vector mat = ...; xyz::vector devVec = moveToGPU(vec); xyz::matrix devMat = moveToGPU(mat); xyz::vector devRes = multiply(devVec, devMat); std::vector res = moveToCPU(devRes);_C++_Cuda_Thrust - Fatal编程技术网

并行乘法向量矩阵 我在C++中编码,我有一个矩阵< /> >和一个必须被乘以的向量< /代码>。这两个类都是我定义的,都包装了一个1-Dstd::vector;数据类型为long-long-int 我已经用std::threads对代码进行了并行化,但现在我想利用我的NVIDIA GPU,用CUDA对乘法进行编码。为了让我的手尽可能干净,你知道是否有一个实现这种算法的库,并且我可以很容易地使用它吗?我已经看到有推力,但从它看来并不完全是我所寻找的,相反,这将是类似的东西 std::vector vec = ...; std::vector mat = ...; xyz::vector devVec = moveToGPU(vec); xyz::matrix devMat = moveToGPU(mat); xyz::vector devRes = multiply(devVec, devMat); std::vector res = moveToCPU(devRes);

并行乘法向量矩阵 我在C++中编码,我有一个矩阵< /> >和一个必须被乘以的向量< /代码>。这两个类都是我定义的,都包装了一个1-Dstd::vector;数据类型为long-long-int 我已经用std::threads对代码进行了并行化,但现在我想利用我的NVIDIA GPU,用CUDA对乘法进行编码。为了让我的手尽可能干净,你知道是否有一个实现这种算法的库,并且我可以很容易地使用它吗?我已经看到有推力,但从它看来并不完全是我所寻找的,相反,这将是类似的东西 std::vector vec = ...; std::vector mat = ...; xyz::vector devVec = moveToGPU(vec); xyz::matrix devMat = moveToGPU(mat); xyz::vector devRes = multiply(devVec, devMat); std::vector res = moveToCPU(devRes);,c++,cuda,thrust,C++,Cuda,Thrust,我要求的太多了吗?mat vec乘法是一种标准运算。但是,您的数据类型不是标准类型(float或double)。因此,将数据转换为double,使用BLAS例程(如)并将结果转换回long,可能不是最佳选择 或者,您可以创建自己的CUDA内核,或者使用来避免编写内核代码,但性能会有所下降。您可以从开始查看如何将矩阵逐行求和为列向量,这是mat vec mul操作的第二步,在完成矩阵和向量之间的每行元素相乘之后。“您知道是否存在库…”您可能需要阅读其中的状态要求我们推荐或查找书籍、工具、软件库、教

我要求的太多了吗?

mat vec乘法是一种标准运算。但是,您的数据类型不是标准类型(
float
double
)。因此,将数据转换为
double
,使用BLAS例程(如)并将结果转换回
long
,可能不是最佳选择


或者,您可以创建自己的CUDA内核,或者使用来避免编写内核代码,但性能会有所下降。您可以从开始查看如何将矩阵逐行求和为列向量,这是mat vec mul操作的第二步,在完成矩阵和向量之间的每行元素相乘之后。

“您知道是否存在库…”您可能需要阅读其中的状态要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与堆栈溢出无关