숟가락 그만 얹어
FLOPs 본문
모델의 efficiency를 설명할 때 주로 사용되는 metric인 FLOPs (floating point operations)는 다음과 같이 계산될 수 있다.
matrix A의 shape이 (m, p)이고 matrix B의 shape이 (p, q) 일 때 dot(A, B)의 FLOPs는 mq(2p-1)이다. dot operation이 row vector와 column vector사이의 곱하기와 더하기 연산으로 수행되는 것을 생각해보면 곱하기에 대해서는 mqp번, 더하기 연산은 mq(p-1)번 수행된다. (n개 elements를 더하려면 n-1번을 수행) 그러므로 총 FLOPs는 mqp + mq(p-1) = mq(2p-1)이 된다.
Tensorflow에서 제공하는 profiler는 2mqp로 계산되는데 여러 사람의 의견을 종합해보면 더하기가 in-place로 수행되는 경우에는 2mqp가 맞는 것으로 추측된다.
count = 0
for i in range(10):
count += i # 더하기가 10번 수행됨
References
[1] Stack Overflow
'Engineering > Developments' 카테고리의 다른 글
매일 쓰는 Tensorboard (0) | 2023.11.14 |
---|---|
Scikit-learn Doctype (0) | 2021.02.25 |
TensorRT & Intel-MKL (0) | 2021.02.24 |
Reading large datasets (0) | 2020.12.06 |