小编apa*_*dge的帖子

PhpStorm/IntelliJ从使用中生成方法

我正在寻找一种使用生成方法.IntelliJ支持提取,重命名等.但是,如果我写,例如,$ this-> new_method($ a)我想在同一个类中快速生成此方法.这是否存在或者可能有插件?

谢谢你的帮助

intellij-idea phpstorm

18
推荐指数
1
解决办法
4753
查看次数

CUDA内核在CudaDeviceSynchronize之前没有启动

cuda profiler输出:

我在并发CUDA时遇到了一些麻烦.看一下附图.内核在标记点启动,时间为0.395秒.然后有一些绿色的CpuWork.最后,调用cudaDeviceSynchronize.在CpuWork之前启动的内核在同步调用之前没有启动.理想情况下,它应该与CPU工作并行运行.

void KdTreeGpu::traceRaysOnGpuAsync(int firstRayIndex, int numRays, int rank, int buffer)
{
    int per_block = 128;
    int num_blocks = numRays/per_block + (numRays%per_block==0?0:1);

    Ray* rays = &this->deviceRayPtr[firstRayIndex];
    int* outputHitPanelIds = &this->deviceHitPanelIdPtr[firstRayIndex];

    kdTreeTraversal<<<num_blocks, per_block, 0>>>(sceneBoundingBox, rays, deviceNodesPtr, deviceTrianglesListPtr, 
                                                firstRayIndex, numRays, rank, rootNodeIndex, 
                                                deviceTHitPtr, outputHitPanelIds, deviceReflectionPtr);

    CUDA_VALIDATE(cudaMemcpyAsync(resultHitDistances[buffer], deviceTHitPtr, numRays*sizeof(double), cudaMemcpyDeviceToHost));
    CUDA_VALIDATE(cudaMemcpyAsync(resultHitPanelIds[buffer], outputHitPanelIds, numRays*sizeof(int), cudaMemcpyDeviceToHost));
    CUDA_VALIDATE(cudaMemcpyAsync(resultReflections[buffer], deviceReflectionPtr, numRays*sizeof(Vector3), cudaMemcpyDeviceToHost));
}
Run Code Online (Sandbox Code Playgroud)

memcopies是异步的.结果缓冲区就像这样分配

unsigned int flag = cudaHostAllocPortable;

CUDA_VALIDATE(cudaHostAlloc(&resultHitPanelIds[0], MAX_RAYS_PER_ITERATION*sizeof(int), flag));
CUDA_VALIDATE(cudaHostAlloc(&resultHitPanelIds[1], MAX_RAYS_PER_ITERATION*sizeof(int), flag));
Run Code Online (Sandbox Code Playgroud)

希望找到解决方案.尝试了很多东西,包括没有在默认流中运行.当我添加cudaHostAlloc时,我发现异步方法返回到CPU.但是,如果内核在稍后调用deviceSynchronize之前未启动,那么这没有任何帮助.

resultHitDistances[2] 包含两个已分配的内存区域,以便当CPU读取0时,GPU应将结果置于1.

谢谢!

编辑:这是调用traceRaysAsync的代码.

int numIterations = ceil(float(this->numPrimaryRays) / MAX_RAYS_PER_ITERATION);
int numRaysPrevious …
Run Code Online (Sandbox Code Playgroud)

cuda

2
推荐指数
1
解决办法
1036
查看次数

标签 统计

cuda ×1

intellij-idea ×1

phpstorm ×1