nVIDIA cudnnConvolutionBackwardFilter를 조사하는 루프 라인 모델
TL;DR
cudnnConvolutionBackwardFilter() 을 1000가지 파라미터로 프로파일링하고
GTX1060의 지붕 라인 모델에 플롯했다.
많은 경우에, 100Gflops 이상의 성능이 나오는 한편, 극단적으로 성능 열화하는 파라미터가 존재하는 것을 알 수 있었다.
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT도 일단 사용되는 것이 있음을 알 수 있었다.
평가 대상
기계
nVIDIA GeForce GTX1060 3G
피크 연산 성능
3.469Tflops
피크 밴드 폭
192GB/sec
CUDA
v10.0
cuDNN
v7.4
평가 조건 (파라미터)
1000가지의 파라미터를 랜덤하게 생성. 가격 범위는 아래 표와 같습니다.
매개변수
가치 영역
배치 크기 n
randint(1, 32)
입력 채널 ci
randint(1, 20)
입력 이미지 크기 Hi
randint(1, 122)
입력 이미지 크기 Wi
randint(1, 122)
스트라이드 u (h 방향)
randint(1, 7)
커널 kernel_h
randint(1, 7)
커널 kernel_w
randint(1, 7)
패딩 pad_h
randint(0, 8)
패딩 pad_w
randint(0, 8)
dilation_h
1 고정
dilation_w
1 고정
※ 알고리즘은 1000가지의 파라미터 각각에 대해 가장 빠른 알고리즘을 선택하고 있다.
→ cudnnGetConvolutionBackwardFilterAlgorithm(..., CUDNN_CONVOLUTION_BWD_FILTER_PREFER_FASTEST,...)
평가식
기계
nVIDIA GeForce GTX1060 3G
피크 연산 성능
3.469Tflops
피크 밴드 폭
192GB/sec
CUDA
v10.0
cuDNN
v7.4
평가 조건 (파라미터)
1000가지의 파라미터를 랜덤하게 생성. 가격 범위는 아래 표와 같습니다.
매개변수
가치 영역
배치 크기 n
randint(1, 32)
입력 채널 ci
randint(1, 20)
입력 이미지 크기 Hi
randint(1, 122)
입력 이미지 크기 Wi
randint(1, 122)
스트라이드 u (h 방향)
randint(1, 7)
커널 kernel_h
randint(1, 7)
커널 kernel_w
randint(1, 7)
패딩 pad_h
randint(0, 8)
패딩 pad_w
randint(0, 8)
dilation_h
1 고정
dilation_w
1 고정
※ 알고리즘은 1000가지의 파라미터 각각에 대해 가장 빠른 알고리즘을 선택하고 있다.
→ cudnnGetConvolutionBackwardFilterAlgorithm(..., CUDNN_CONVOLUTION_BWD_FILTER_PREFER_FASTEST,...)
평가식
평가 환경
cudnnConvolutionBackwardFilter()
※ Cython의 setpu.py만은 여러가지 하드 코딩하고 있으므로 리포지토리에 넣지 않습니다. 죄송합니다.
참고문헌
htps : // 기주 b. m / PyS rm / pys rm / uki / St rin gs-an dby by s-in-Cy
Reference
이 문제에 관하여(nVIDIA cudnnConvolutionBackwardFilter를 조사하는 루프 라인 모델), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takata150802/items/a874adebbf7de0a77840텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)