Main Content

gputimeit

GPU에서 함수를 실행하는 데 필요한 시간

설명

예제

t = gputimeit(F)는 함수 핸들 F로 지정된 함수를 실행하는 데 필요한 일반적인 시간(초)을 측정합니다. 함수 핸들은 외부 입력 인수를 받지 않으며 내부 함수 호출에 대한 입력 인수를 사용하여 정의할 수 있습니다.

예제

t = gputimeit(F,numOutputs)는 원하는 출력 인수 개수 numOutputs를 사용하여 F를 호출합니다. 기본적으로 gputimeit는 하나의 출력 인수를 사용하여 함수 F를 호출하며, F가 어떠한 출력값도 반환하지 않는 경우에는 출력 인수 없이 호출합니다.

예제

모두 축소

이 예제에서는 GPU에서 sum(A.' .* B, 1)을 계산하는 시간을 측정하는 방법을 보여줍니다. 여기서 A는 12000×400 행렬이고 B는 400×12000 행렬입니다.

A = rand(12000,400,'gpuArray');
B = rand(400,12000,'gpuArray');
f = @() sum(A.' .* B, 1);
t = gputimeit(f)
0.0026

GPU에서 1개의 출력 인수와 3개의 출력 인수를 사용하여 svd를 실행하는 시간을 비교합니다.

X = rand(1000,'gpuArray');
f = @() svd(X);
t3 = gputimeit(f,3)
1.0622
t1 = gputimeit(f,1)
0.2933

입력 인수

모두 축소

측정할 함수로, 함수 핸들로 지정됩니다.

함수 호출에 사용할 출력 인수 개수로, 정수 스칼라로 지정됩니다.

F로 지정된 함수의 출력값 개수가 가변적인 경우, numOutputs를 통해 gputimeit 가 함수를 호출할 때 사용할 구문을 지정합니다. 예를 들어, svd 함수는 1개의 출력값 s 또는 3개의 출력값 [U,S,V]를 반환합니다. s = svd(X) 구문 실행에 걸리는 시간을 측정하려면 numOutputs1로 설정하고, [U,S,V] = svd(X) 구문 실행에 걸리는 시간을 측정하려면 이 인수를 3으로 설정하십시오.

제한 사항

  • 함수 Ftic 또는 toc를 호출해서는 안 됩니다.

  • gputimeit 자체의 실행 시간을 측정하기 위해 tictoc를 사용할 수 없습니다.

GPU를 사용하는 함수의 경우 gputimeittimeit보다 나은데, 그 이유는 GPU상의 모든 연산이 시간을 기록하기 전에 완료되어 오버헤드를 상쇄시키기 때문입니다. GPU를 사용하지 않는 연산에서는 timeit가 더 나은 정밀도를 제공합니다.

버전 내역

R2013b에 개발됨

참고 항목

|