GPU 드라이버를 설치한 후 Linux 그래픽 스택은 어떻게 됩니까?

GPU 드라이버를 설치한 후 Linux 그래픽 스택은 어떻게 됩니까?

Wikipedia의 이 이미지는 소위 "Linux 그래픽 스택"을 보여줍니다.

리눅스 그래픽 스택

제가 아주 새로운 노트북을 구입했는데 GPU 전용 장치 드라이버가 없다고 가정해 보겠습니다. 그래서 어느 날 괜찮은 개발자가 훌륭한 무료 드라이버를 만들기 전까지는 그래픽 품질이 좋지 않았습니다. 그리고 Linux 배포판을 업데이트하면서 그래픽 품질이 정말 훌륭하고 완벽해졌음을 알게 되었습니다. 내 질문은: 업데이트로 인해 그래픽 스택이 어떻게 변경되었습니까? 특히, 새 그래픽 드라이버가 사용자 공간에서만 실행되는지, 아니면 적어도 일부가 커널 공간에서 실행되는지 알고 싶습니다. 그런데 저는 매우 고급 Linux 사용자가 아닙니다. 이 점을 명심하시기 바랍니다. :)

답변1

이 그래프에서 이미지 스택은 실제로 변경되지 않습니다(따라서 추상적인 수준에서). 대부분의 프로그램은 아무런 차이를 느끼지 못합니다(그러나 예를 들어 초당 프레임을 측정하는 경우).

그러나 읽고 있는 파일은 거의 변경되지 않았습니다.

첫 번째 변경 사항은 Linux 커널 또는 더 나은 커널 모듈입니다. 새 그래픽 카드에는 새 드라이버가 필요할 수 있습니다. 참고: 많은 드라이버가 매우 일반적이므로 기존 시리즈의 새 GPU를 사용하는 경우 대부분의 기능은 제대로 작동하지만 잠재력을 최대한 활용하지 못할 수 있습니다. 또는 결국 알 수 없는 카드를 허용하려면 일부 부팅 매개변수(또는 더 나은: 모듈 매개변수)를 입력해야 합니다. 커널은 주로 권한과 리소스를 처리하므로핵무기비디오 카드를 사용하십시오.

다른 변경 사항은 위 그림과 같이 사용자 공간에 있습니다: libGL(렌더링, 계산)과 다른 부분(색상 관리, 화면 관리, GPU의 계산 등)을 처리하는 다른 드라이버가 있을 수 있습니다. 프로그램을 설치할 때 패키지 관리자는 GPU를 사용하는 작업을 수행하는(또는 사용 가능한 GPU가 없다고 알려주는) 범용 드라이버를 설치합니다. 여기서 주요 작업은 이미 완료되었습니다(또는 더 좋게는 위임됨). 프로그램이 다음과 같이 알려줍니다. 그런 효과가 필요하며 라이브러리는 CPU에서 해당 작업을 수행하거나, GPU에 위임하거나 블렌드합니다(분리하고 여러 작업을 보냅니다). GPU에). 다시 말하지만, 새로운 GPU 시리즈를 사용하지 않는 경우 일부 기능이 인식되어 사용됩니다. 잠재력을 최대한 활용하지는 않지만 CPU의 부하를 어느 정도 줄여줍니다.

GPU의 차이를 과대평가하지 마십시오. 대부분의 아키텍처는 변경되지 않은 상태로 유지됩니다. 벤치마크에는 많은 개선이 있을 것이지만 아키텍처는 동일합니다. 일부 최적화, 새로운 코어, 더 많은 메모리 등이 있을 수 있으며, 이는 이전 드라이버에서 인식될 수 있습니다. 새로운 기능(예: 광선 추적, 3D 그림자 등)이 있을 수도 있지만, 이 경우 이러한 기능을 사용하는 프로그램(및 이를 구현하는 라이브러리/드라이버)이 있을 때까지 새 드라이버는 큰 도움이 되지 않습니다.

따라서 Ubuntu(및 기타 배포판)에서는 처음부터 일부 지원을 받을 수 있습니다(매우 기본적, 새로운 종류의 VESA라고도 함, 고급이지만 완전히 최적화되지는 않음)(다른 제조업체에 비해 일부 제조업체는 Linux에서 더 적극적입니다) . 완전한 지원(드라이버)을 받으려면 더 많은 시간이 필요할 수 있습니다(새로운 아키텍처인 경우 더 많은 시간, 적절한 문서가 없는 경우 더 많은 시간, "Apple Silicon"의 GPU 참조). 그리고 프로그램과 게임(및 라이브러리)에 대한 완전한 지원을 받으려면 더 많은 시간이 필요합니다.

관련 정보