tensorfloat32 (TF32), INT4 8 16 32?질문 드립니다

cncn   
   조회 2363   추천 0    

 안녕하세요

1.

tensorfloat-32가 ampere부터 추가되었다는데 그럼 ampere이전의 모든 gpu에는 TF32는 없는건가요?

그럼 peak TF32 tensor TFLOPS 이건 TF32 성능치를 말하는게 맞는건가요?

자료조사를 해보다가 있는걸 본거같기도해서... float과 flops의 차이가 뭔가요? flops는 단위로알고있는데..

 2.

INT4 8 16 32 이렇게 INT도 있던데 잘 이해가 안갑니다. 성능치 계산법도 있던데...

INT는 무엇을하느건가요

짧은글 일수록 신중하게.
piloteer 2022-12
1. 텐서 코어 기준으론 없는 게 맞습니다. 일반 쿠다코어는 TF32말고 일반 IEEE754 float형을 기본으로 하는 것 같고요..
참고: https://www.nvidia.com/en-us/data-center/tensor-cores/#end-to-end

float은 자료형이고 (tf32도 float에 해당) flops는 연산속도입니다. float 연산을 1초에 몇 번 할 수 있느냐.. 보통 이론상 최대 수치를 적어두죠. tf32 tflops라고 적어뒀다면 tf32를 썼을 때의 최대 flops 속도겠지요. (테라 단위)

2.
int는 그냥 정수형이라는 뜻입니다. 실수 표현 못하고 정수값만 표현할 수 있는 자료형.. 딥러닝이나 신호처리에서 쓰긴 좀 까다롭지만 잘 쓰면 float계열 대비 연산속도가 빠르죠.. 딥러닝쪽에선 보통 고속 인퍼런스 목적으로만 씁니다.
     
cncn 2022-12
감사합니다
죄송한데 제가 지금 데이터시트를 만들고있는데요
peak TF32 Tensor TFLOPS 는 ampere이전에것은 다 없는게맞는건가요? 튜링 볼타도 텐서가있다고 계산법대로 작성하라는데..

peak FP32 tensor TFLOPS (non-tensor) 이게 근데 논텐서인데 맞는말인가요? FP32 텐서플롭을 구하라는데..
          
piloteer 2022-12
튜링/볼타는 텐서코어는 있는데 TF32는 계산 못합니다. FP16은 되지만 FP16이 아닌 TF32기준이라면 못 채워넣는 게 맞는 거 같은데요.. 이론상 자료형이 없어도 억지로 시뮬레이션할 수는 있지만 분석도 까다롭고 성능저하가 심해서 텐서코어의 장점이 사라지기 때문에 그걸 그렇게 쓰는 사례는 들어보지 못했습니다. 그냥 CUDA코어에서 FP32로 계산하고 말죠..

논텐서는 CUDA코어 FP32 (IEEE754 single-precision) 기준 TFLOPS 적으라는 뜻 같습니다. 텐서라는 단어는 왜 들어갔나 모르곘는데 뭐 텐서연산시 기준으로 하라는 거 아닐까요? 피크값이라니 그냥 스펙시트에 적힌 CUDA코어 32비트 tflops값 쓰셔도 될 것 같습니다. 의존성 적은 단순한 텐서 연산이라면 쿠다 코어  이론상 성능을 거의 그대로 낼 수 있으니...
               
cncn 2022-12
Tensor 성능 계산법
FP32 성능 * SM당 TensorCore 개수 * Tensor 버전 성능 * 2(sparsity)
SM당 TensorCore 수 (gv100 8개 , ga100 4개)
Tensor 버전별 성능 차이 ( ampere 에서 사용한 3세대 Tensor Core는
Volta와 Turing 에 사용한 Tensor Core 1, 2 세대 보다 2배 좋은 성능을 가졌음 )
sparsity 원리로 최대 2배 성능

이걸가지고 TF32를 볼타부터 구하라는데 저는 데이터시트를 찾아봐도 ampere만 TF32가 있는걸봐서 안적고있었거든요
그럼 TF32는 ampere부터인게 맞는거같은데...

혹시 GA100 102 104 106 / GP100 104 107 이런식으로 100시리즈에서 점점 늘어나던데
이건 제조과정에서 100프로 성능이 못나와서 하위버전으로 나오는게 맞나요?
                    
piloteer 2022-12
애초에 볼타/튜링의 텐서코어는 32비트 연산 자체를 못 하기 때문에 FP32성능도 당연히 없어서 못 구하는 게 맞습니다. Softfloat 구현이 가능할 수도 있긴 하나 (아마 안 될겁니다. 쿠다코어만큼 유연하지가 않아서..) 설령 가능해도 성능이 수십배 저하되어서 가속용으론 아무 쓸모도 없기에 실제로 그런 걸 하는 사례는 본 적이 없습니다.

볼타/튜링의 "쿠다코어" 는 32비트 연산이 되는데, 말씀하시는 분이 그것때문에 착각하고 계신게 아닌가 하는 생각이 드네요.. 아니면 그 텐서코어가 최종 연산결과를 FP32로 누적시켜서 FP32로 반환하게 만들 수 있기는 한데, 그것때문에 착각하셨거나요. 내부적으로 FP32 연산 구간이 있다곤 해도 사용자가 32비트 데이터를 입력시킬 수 있는 게 아니고 내부적인 동작, 그 중에서도 특정 단계에만 일시적으로 쓰는 수준이기 때문에 학술적인 용도로 뭐 텐서코어를 세부적으로 분석하는 경우라던가 그런 거라면 몰라도 데이터시트에 32비트 tflops 성능이라고 적어도 될 만한 것은 아닙니다.

GA100 102 그건 저도 정확히 알고 있지는 않은데, 기본적으론 아예 따로 제조되는 칩으로 알고 있습니다. 같은 번호내에서 (예를 들어 GA100 내에서) 성능이나 커팅 여부 등을 기준으로 더 세세하게  모델을 분류하기는 할 겁니다. 근데 뭐 모델 이름 붙이는건 엔비디아 맘대로라서..? 제가 잘 모르는 케이스가 있을지도 모르겠습니다.


QnA
제목Page 525/5718
2014-05   5208785   정은준1
2015-12   1740469   백메가
2022-04   2346   이순신
2023-09   2346   쌍cpu
2022-04   2346   slowcity
2020-06   2347   네이스터
2021-10   2347   VSPress
2022-11   2347   박문형
2023-05   2347   가온누리I강…
2023-09   2347   검은콩
2023-10   2347   tuffguy7
2022-12   2347   슬루프
2022-11   2347   화란
2020-07   2347   SugarCube
2023-01   2347   찬이
2020-11   2348   컴퓨터하나…
2022-02   2348   도오
2021-07   2348   삼돌군
2020-02   2348   쿵짝쿵짝
2023-06   2348   농부76
2019-01   2348   임진욱
2022-04   2348   다이어트중