질문
1. GPU를 이용해서 해석을 수행하는 방법이 있나요?
2. [해석 탭 > 도구 > 해석옵션] 에 GPU 자원을 사용 이라는 옵션이 있습니다. 어떻게 사용하나요?
답변
GPU 자원을 사용하여 해석하기 위해서는 기본적으로 2개의 그래픽 프로세서가 필요합니다(외장 그래픽 카드). 하나는 디스플레이 출력용으로 다른하나는 연산작업을 위한 그래픽 프로세서 입니다.
1. 디스플레이 출력용 그래픽 프로세서는 일반적으로 사용하는 그래픽 프로세서를 사용하면 됩니다.
- 그래픽 프로세서로 GTS NX를 실행시키는 방법은 [GTS NX] 외장 그래픽카드는 어떻게, 왜 설정해야 하나요?, 역할은 어떤건가요?를 참고하시기 바랍니다.
2. 연산용 그래픽 프로세서는 현재 GTS NX (V360)에서는 Nvidia의 Ada Lovelace와 Hopper를 포함한 최신버전의 아키텍쳐를 지원합니다.
- GTS NX (V340) 에서는 Turing과 Volta를 포함한 이전의 아키텍쳐만 지원하고 있었지만 업데이트를 통해 GTS NX(V360) 부터는 최신 아키텍쳐를 지원합니다. 사용자분들이 쉽게 이해하기 위해서 표로 설명하자면 아래와 같습니다.
▶Nvidia 사 아키텍쳐 용도 및 종류 (Micro-architecture) | |
일반소비자 | 전문가 / 연산 / 데이터센터 |
Kepler (2012.4) | - |
Maxwell (2014.2) | - |
Pascal (2016.5) | - |
Turing (2018. 9) | Volta (2017.12) |
Ampere (2020.5) | - |
Ada Lovelace (2022.10) | Hopper (2022.9) |
* 아키텍쳐별 자세한 제품은 하단의 표를 참고해주세요
- GPU 연산기능은 기본적으로 GTSNX 64-Bit(64x) 버전에서 사용 가능합니다. 지원하는 GPU는 상단표에 소개된 것처럼 Nvidia의 GPU만 지원하고 있으며, Nvidia 제어판을 통해 그래픽 카드별로 할당되어 있는 CUDA-GPU 설정을 조정할 수 있습니다. 또한 효율적인 연립방정식 계산을 위해서는 쿼드코어 이상의 CPU와 더 많은 메모리(RAM)를 장착하는 것이 좋습니다.
3. GPU 옵션을 사용하면 무조건 해석속도가 빨라지지 않습니다.
- GTS NX(V360)에서는 Ada Lovelace와 Hopper 아키텍쳐의를 포함한 GPU를 활용하여 해석을 수행할 수 있습니다. 다만 대형모델(약 Element 1백만 이상)을 해석할때 CPU만 이용했을 때 보다 해석속도를 빠르게 하기 위해서는 GPU의 연산능력(Processing Power)중 배정밀도(Double Precision)의 초당 부동소수점 연산 처리속도(FLOPS)가 1000 기가플롭스(GFLOPS), 즉 1 테라플롭스(TFLOPS) 이상인 GPU를 사용해야 합니다. 본 값보다 낮은 성능의 GPU는 해석속도가 CPU보다 오히려 오래 걸릴 수 있습니다.
4. GPU 옵션을 사용하기 위해서는 그래픽프로세서의 드라이버를 업데이트 해야합니다.
- GTS NX(V360)에서는 최신 아키텍쳐의 그래픽 프로세서를 지원하게 업데이트 되었습니다. 이때 최신 드라이버로 업데이트를 하지 않으시면 해석이 시작될 때 중단되는 현상이 발생할 수 있습니다. 아래의 Nvidia 공식 Driver 홈페이지에서 사용자분의 그래픽 프로세서와 맞는 최신버전의 드라이버로 업데이트 후 사용해 주세요.
- 제일 하단의 표를 참고하시면 주로 GeForce Series의 경우는 사용자분들이 디스플레이 출력용으로 사용하셔서 익숙하실 것입니다. 하지만 위의 조건을 충족시키는 GPU Series는 일부 Qdurao Series와 Tesla Series 가 대표적입니다. Tesla와 Quadro Series는 고급 사용자를 대상으로 출시된 GPU이며 GeForce Series에 비해 연산 성능은 뛰어나지만 가격이 매우 높습니다. GeForce Titan과 같은 GPU는 가격이 저렴하면서 높은 성능의 Double Precision 성능을 제공하지만, ECC memory(오류수정코드, Error Correction Code) 기능이 없으며 연산 전용으로 만들어진 것이 아니므로 사용 여부는 사용자의 필요에 따라 결정하셔야합니다.
- Tesla Series와 Qudro Series에는 ECC Memory(오류 수정 코드)라고 하는 연산의 정확도를 향상시키고 GPU의 안정성을 높이는 옵션을 제공합니다. 이 기능은 데이터 오류를 검출하고 수정하는 역할을 위해 GPU Memory 중 일부(약 700MB) 메모리를 할당하는 방식으로 사용되는 기능입니다. 때문에 GPU 성능이 소폭 감소하게 되지만 해석을 수행할 때는 안정성과 데이터 정확성을 보장하기 위해 ECC 기능을 비활성화하는 것은 권장되지 않습니다.
<NVIDIA CUDA 설정 창> |
- 그림과 같이, 연산에 사용할 GPU를 설정할 때 다른 GPU의 CUDA 설정을 비활성화해야 합니다. 이렇게 하지 않으면 화면 출력에 사용 중인 GPU에서 연산 오류가 발생할 수 있으며, 이는 컴퓨터 사용에 치명적일 수 있습니다.
<Tesla ECC 기능 설정 창> |
Kepler |
▶GeForce 900 series GT 945A / GTX 950 / GTX 960 / GTX 970 / GTX 980 / GTX 980 Ti / GTX TITAN X ▶Quadro series Quadro K420 / Quadro K600 / Quadro K620 / Quadro K1200 / Quadro K2000 / Quadro K2000D / Quadro K2200 / Quadro K4000 / Quadro K4200 / Quadro K5000 / Quadro K5200 / Quadro K6000 |
Maxwell |
▶GeForce 900 series GT 945A / GTX 950 / GTX 960 / GTX 970 / GTX 980 / GTX 980 Ti / GTX TITAN X ▶Quadro series Quadro M2000 / Quadro M4000/ Quadro M5000 / Quadro M6000 / Quadro M6000 ▶Tesla series M4 GPU accelerator / M6 GPU accelerator / M10 GPU accelerator / M40 GPU accelerator / M60 GPU accelerator |
Pascal |
▶GeForce 10 series GeForce GT 1010 / GeForce GT 1030 / GeForce GTX 1050 / GeForce GTX 1050 Ti / GeForce GTX 1060 / GeForce GTX 1070 / GeForce GTX 1070 Ti / GeForce GTX 1080 / GeForce GTX 1080 Ti / TITAN X Pascal / TITAN Xp / GeForce GTX 1080 Max-Q ▶GeForce MX series GeForce MX150 / GeForce MX230 / GeForce MX250 / GeForce MX330 / GeForce MX350 ▶Quadro series Quadro P400 / Quadro P600 / Quadro P620 / Quadro P1000 / Quadro P2000 / Quadro P2200 / Quadro P4000 / Quadro P5000 / Quadro P6000 / Quadro GP100 ▶Tesla series P4 GPU accelerator / P6 GPU accelerator / P40 GPU accelerator / P100 GPU accelerator |
Turing |
▶GeForce 16 series GeForce GTX 1630 / GeForce GTX 1650 / GeForce GTX 1650 Super / GeForce GTX 1660 / GeForce GTX 1660 Super / GeForce GTX 1660 Ti ▶GeForce 20 series GeForce RTX 2060 / GeForce RTX 2060 Super / GeForce RTX 2070 / GeForce RTX 2070 Super / GeForce RTX 2080 / GeForce RTX 2080 Super / GeForce RTX 2080 Ti / Nvidia TITAN RTX / GeForce RTX 2050 / GeForce RTX 2060 Max-Q / GeForce RTX 2070 Max-Q / GeForce RTX 2070 Super Max-Q / GeForce RTX 2080 Max-Q / GeForce RTX 2080 Super Max-Q ▶GeForce MX series GeForce MX450 / GeForce MX550 ▶Quadro series T400 / T600 / T1000 / RTX 3000 / RTX 4000 / RTX 5000 / RTX 6000 / RTX 8000 ▶Tesla series T4 GPU accelerator |
Volta |
▶Volta series Nvidia TITAN V ▶Quadro series Quadro GV100 ▶Tesla series V100 GPU accelerator |
Ampere |
▶GeForce 30 series GeForce RTX 3050 / GeForce RTX 3050 Ti / GeForce RTX 3060 / GeForce RTX 3060 Ti / GeForce RTX 3070 / GeForce RTX 3070 Ti / GeForce RTX 3080 / GeForce RTX 3080 Ti / GeForce RTX 3090 / GeForce RTX 3090 Ti ▶GeForce MX series GeForce MX570 ▶Quadro series RTX A2000 / RTX A3000 / RTX A4000 / RTX A4500 / RTX A5000 / RTX A6000 ▶Tesla series A2 GPU accelerator / A10 GPU accelerator / A16 GPU accelerator / A30 GPU accelerator / A40 GPU accelerator / A100 GPU accelerator |
Ada Lovelace |
▶GeForce 40 series GeForce RTX 4060 / GeForce RTX 4060 Ti / GeForce RTX 4070 / GeForce RTX 4070 Ti / GeForce RTX 4080 / GeForce RTX 4080 Ti / GeForce RTX 4090 ▶Quadro series RTX 4000 SFF Ada Generation / RTX 6000 Ada Generation ▶Tesla series L40 GPU accelerator / L4 GPU accelerator |
Hopper |
▶Tesla series H100 GPU accelerator |