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; }
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"); }