주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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에 개발됨

참고 항목

|