如何加速我的计划?

时间:2016-03-01 06:36:37

标签: java nlp gpu

我想将计算密集型部分(for循环)迁移到GPU,我希望使用cuda,但我找不到类似的完整注释程序来引用,因为之前没有接触过这个知识点,我希望有一个更详细的教程,请帮助我。还有其他方法来加速以下程序的程序吗?

       double wf = 0;
        Set<Map.Entry<String, Double>> testWordTFMapSet = testWordTFMap.entrySet();
        for (Iterator<Map.Entry<String, Double>> it = testWordTFMapSet.iterator(); it.hasNext(); ) {
            Map.Entry<String, Double> me = it.next();
            Set<Map.Entry<String, Double>> trainWordTFMapSet = trainWordTFMap.entrySet();
            for (Iterator<Map.Entry<String, Double>> it2 = trainWordTFMapSet.iterator(); it2.hasNext(); ) {
                Map.Entry<String, Double> me2 = it2.next();
                if (me.getKey() == me2.getKey()) {
                    wf = 1;
                } else
                    wf = computeS.similarity(me.getKey(), me2.getKey(), words);
                if (wf > 0.45)
                    mul += wf * me.getValue() * me2.getValue();

            }
        }

“wf”的计算是另一个for循环

public static double similarity(String word1, String word2,Map<String, double[]> words) {

    double[] count1=words.get(word1);
    double[] count2=words.get(word2);
    double sum=0;
    double Abs1=0;
    double Abs2=0;
    for (int c = 0; c < count1.length; c++) {
        sum += count1[c] * count2[c];
        Abs1 += count1[c] * count1[c];
        Abs2 += count2[c] * count2[c];
    }
    return sum / (Abs1 * Abs2);
}

0 个答案:

没有答案