使用GPU

时间:2018-04-24 16:42:34

标签: matlab matrix vector gpu-programming geometric-mean

我需要帮助解决与计算某些数据的加权几何平均值相关的优化和性能问题。

我用一点样本介绍了这个问题。 我编写了代码来计算WGM,下面是一个简单的例子。

% A matrix Example 3x3 matrix
% w column vector 3x1
% wgm row vector 1x3


A = rand(3);
w = [1,2,6]';
wgm = (prod(A.^w)).^(1/sum(w));

现在解决一般性问题

假设我有一个新的矩阵大小为nxm 和一个由权重列组成的W矩阵,其中权重值可以从0到k,我需要所有列排列。

那就是 W矩阵的大小为nxk ^ n ,因为权重的性质和加权几何计算这个最终矩阵应该减少排除表示乘以a的列标量值从0到k的排列。

因此,如果我有一个像[1,1,0]这样的列,应该排除所有t * [1,1,0],t从0到k。 另一个例子:[1 2 3]应排除[2 4 6]或[3 6 9]等等。

基本理念 W矩阵的每个生成列都可以归一化,将每个权重除以k ,因此如果新的规范化列是冗余的,则不应添加然后转换回到uint8列,将内存消耗减少到12.5%。

所以考虑一个真实数据示例假设:

  1. 我有一个静态A矩阵32x30。
  2. 权重值从0到99。
  3. 我需要一种方法来创建尺寸为32x100 ^ 32的W矩阵并进行优化。
  4. 计算优化的原始WGM 100 ^ 32x30矩阵,其中每一行是A矩阵和相应W列的计算结果。
  5. 所以要解决的问题是:

    • 在尺寸和性能方面创建优化的权重矩阵。
    • WGM矩阵的计算。
    • 一种分配和分区这些矩阵以避免内存问题的方法。
    • 将Matlab代码转换为GPU代码,以便在 Cuda设备(1080 GTX,8 GB视频内存)上进行计算
    • 以有效的方式存储最终的矩阵。

    添加了信息:

    加权几何平均矩阵数据将通过一组更严格的规则进行验证,因此不会丢弃符合的行,对于最终的W矩阵也是如此,其中相应的列将被消除。

    这可以在创建2个矩阵时更早地进行评估,以找到优化内存消耗的解决方案,同时可能效率较低

0 个答案:

没有答案