시뮬레이션 루프를 활용하는 데 어려움을 겪고 있습니다. 매주기마다 3 개의 커널이 시작되었습니다. 다음 시간 단계 크기는 두 번째 커널에 의해 계산됩니다.시뮬레이션 루프 GPU 활용
while (time < end)
{
kernel_Flux<<<>>>(...);
kernel_Timestep<<<>>>(d_timestep);
memcpy(&h_timestep, d_timestep, sizeof(float), ...);
kernel_Integrate<<<>>>(d_timestep);
time += h_timestep;
}
단지 하나의 플로트 만 복사하면됩니다. 불필요한 동기화를 피하는 가장 효율적인 방법은 무엇입니까?
미리 감사드립니다. :-)
내 문제가 아니라 커널이 하나씩 실행되고 있는지,하지만 방어 적이기 :
지금은 다음 코드를 사용, 요약합니다. 전체 프로세스가 지연됩니다. – hrvthzs현재 비 블로킹 스트림을 사용 중입니다. 하나는 커널 용이고 다른 하나는 메모리 전송 용이며, h_timestep은 cudaMallocHost로 할당됩니다. – hrvthzs
@hrvthzs 질문에 이러한 세부 정보를 추가하는 것이 중요하다고 생각합니까? – talonmies