コード例 #1
0
ファイル: sample.c プロジェクト: Celtoys/Remotery
int main( ) {
    Remotery *rmt;
	rmtError error;

    signal(SIGINT, sigintHandler);

	error = rmt_CreateGlobalInstance(&rmt);
    if( RMT_ERROR_NONE != error) {
		printf("Error launching Remotery %d\n", error);
        return -1;
    }

    while (sig == 0) {
        rmt_LogText("start profiling");
        delay();
        rmt_LogText("end profiling");
    }

    rmt_DestroyGlobalInstance(rmt);
    printf("Cleaned up and quit\n");
    return 0;
}
コード例 #2
0
ファイル: main.c プロジェクト: FuckWisdom/island
void draw()
{
    rmt_LogText("start profiling");

    //rmt_BeginCPUSample(uv_run);
    uv_run(uv_default_loop(), UV_RUN_NOWAIT);
    //rmt_EndCPUSample();

    CUstream stream0 = 0;
    rmt_BeginCUDASample(main, stream0);
    {
        if (isResized())
        {
            setupSizeResource();
        }
        // Launch the Vector Add CUDA Kernel
        int threadsPerBlock = 256;
        int blocksPerGrid = (img.width * img.height + threadsPerBlock - 1) / threadsPerBlock;
        //printf("CUDA kernel launch with %d blocks of %d threads\n", blocksPerGrid, threadsPerBlock);
        dim3 blockDim = { 32, 32, 1 };
        dim3 gridDim = { width / blockDim.x, height / blockDim.y, 1 };

        float3 iResolution = { width, height, 1 };
        float iGlobalTime = glfwGetTime();
        float4 iMouse = { mouseX, mouseY, mouseX, mouseY };
        rmt_BeginCUDASample(cuMemcpyHtoD, stream0);
        checkCudaErrors(cuMemcpyHtoD(d_iResolution, &iResolution, sizeof iResolution));
        checkCudaErrors(cuMemcpyHtoD(d_iGlobalTime, &iGlobalTime, sizeof iGlobalTime));
        checkCudaErrors(cuMemcpyHtoD(d_iMouse, &iMouse, sizeof iMouse));
        rmt_EndCUDASample(stream0);

        rmt_BeginCUDASample(cuLaunchKernel, stream0);
        checkCudaErrors(cuLaunchKernel(kernel_addr,
            gridDim.x, gridDim.y, gridDim.z, /* grid dim */
            blockDim.x, blockDim.y, blockDim.z, /* block dim */
            0, 0, /* shared mem, stream */
            0, /* arguments */
            0));
        rmt_EndCUDASample(stream0);
        rmt_BeginCUDASample(cuCtxSynchronize, stream0);
        checkCudaErrors(cuCtxSynchronize());
        rmt_EndCUDASample(stream0);
        
        rmt_BeginCUDASample(cuMemcpyDtoH, stream0);
        checkCudaErrors(cuMemcpyDtoH(img_content, d_img_content, item_size));
        rmt_EndCUDASample(stream0);
    }
    rmt_EndCUDASample(stream0);

    rmt_BeginOpenGLSample(main);
    {
        background(color(0,0,0));
        updateImage(img, img_content);
        image(img, 0, 0, width, height);

        TwDraw();
    }
    rmt_EndOpenGLSample();

    rmt_LogText("end profiling");
}