有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JOCL中的java定时数据传输和执行

我正在使用JOCL库(由JOGAMP编写),我想知道是否有可能测量数据从主机传输到设备所需的时间、内核所需的时间以及分别返回结果所需的时间

目前,我正在像这样调用我的内核:

排队。putReadBuffer(…)。put1DKernel(…)。putWriteBuffer(…)


共 (1) 个答案

  1. # 1 楼答案

    回答我自己的问题;-)程序是这样的。。。首先创建一个具有所需容量的CLEventList,因为我只想测量内核执行,所以我将其设置为1

    CLEventList list = new CLEventList(1);
    

    现在,当您将内核设置到命令队列中时,您可以添加列表作为参数:

    queue.putReadBuffer(...).put1DKernel(..., list).putWriteBuffer(...).finish();
    

    之后,您可以拨打以下电话了解时间:

    long start = list.getEvent(0).getProfilingInfo(ProfilingCommand.START);
    long end = list.getEvent(0).getProfilingInfo(ProfilingCommand.END);
    long duration = end - start // time in nanoseconds
    

    不要忘记使用模式初始化命令队列。分析模式已启用