본문 바로가기

dev_AI_framework

Z - caching in epilogue gemm backward ( 연산 비용 - 메모리 Trade-off)

epilogue 를 구현한 gemm forward 연산에서는 가중치 연산 ( 행렬 곱 ) , 편향 ( 행렬 합 - 단순 스칼라 값일 수도 있지만, 행렬로 변환하여 elementwise add 를 수행하기 때문에 행렬 합이라고 표현 ), activation ( elementwise multiply ) 연산을 단일 커널을 통해 수행함, 

Z = A @ B + C

Y = f(Z) 

그런데 backward 의 경우 Y 값에서 시작하여 거꾸로, activation - bias - weight 의 연산 과정을 수행하게 되면, 그 activation 의 종류에 따라 Z 값이 필요한 경우가 존재

Z 값의 저장이 없으면, 역전파시 필요한 Z 값을 위한 forward 연산이 또 필요로 함,