有什么可能在CUDA内核中分析特定的__device__函数?

时间:2014-09-03 11:47:44

标签: cuda profiling

正如问题所述,我想知道是否有可能获得内核中特定CUDA函数的更深层的分析数据。我已经开发了一些相当复杂的Miller-Rabin算法实现,任意大整数,需要微调,一般我已经找到了一些“可疑代码”:

/* Iterate over bits of t from bit-position D-2 to s (both inclusive).
   Note that t is just effectively n with special treatment, namely we skip
   s least-significant bits as stated previously (refer to initialization section) */
for (int j = SIZ(n) * CUMP_LIMB_BITS - 2; j >= s; j--) {
    /* b_helper = b**2 mod n */
    cumpz_mulmod(b_helper, b, b, n);

    /* Swap b with b_helper */
    cumpz_swap(b, b_helper);

    if (cump_tstbit(PTR(n), j)) {
        /* b = b_helper * a mod n */
        cumpz_mulmod(b_helper, b, a, n);

        /* Swap b with b_helper */
        cumpz_swap(b, b_helper);
    }
}

如何获取总呼叫数,cumpz_mulmod的总时间,每次通话的时间等内容?请注意,cumpz_mulmod会调用其他功能,例如cumpz_add,调用其他功能等。理想情况下,我希望获得与gprof相同的信息,例如调用图,但我已经研究过这似乎不可能完全,因为所有__device__函数都是内联的。我发现nvprof仅对内核整体有用。

0 个答案:

没有答案