저지연 커널이 없는 Linux 음악 제작 워크플로

저지연 커널이 없는 Linux 음악 제작 워크플로

내 Linux Mint 컴퓨터에서 음악을 만들고 싶지만 저지연 커널을 설치하고 사용하려고 할 때 불안정함(Nvidia 독점 그래픽 드라이버와의 충돌로 인해 시스템이 정지될 수 있음)을 경험하고 있습니다. 그래서 내 마음속에는 세 가지 선택지가 있습니다.

  1. 일반적인 일반 커널인 현재 시스템을 사용하십시오.
  2. Ubuntustudio와 같은 전용 오디오 배포판을 설치하세요.
  3. 현재 시스템에 대기 시간이 짧은 커널을 설치했지만 그래픽 카드를 비활성화했습니다.

옵션 2에는 재분할 등이 포함되므로 이를 피하고 싶은 반면 옵션 3은 다소 보기 흉하고 지루합니다. 그렇다면 옵션 1을 선택하면 음악 제작에 저지연 코어를 사용하지 않음으로써 무엇을 놓치게 되는지 궁금합니다. (일반적으로 Linux 툴체인, 특히 Linux 툴체인)?

음악 제작에 범용 코어를 사용하기로 선택한 경우 저지연 코어는 어떤 부작용과 문제를 해결해야 합니까? JACK을 효과적으로 사용할 수 없나요? 녹음할 수 있나요? 녹음이 지연되나요? 소음/점프/비명? 피아노 키보드를 통한 MIDI 입력의 정확성이 영향을 받습니까?


추신. 질문은 ~이야music.SE에서 교차 게시됨의견에 따르면 이 포럼이 더 적절할 수 있습니다. 저는 음악 제작을 위한 Linux 워크플로가 이 포럼 주제에 적합한지에 대한 사람들의 의견을 듣고 싶습니다.

답변1

귀하의 질문이 불분명하지만, 앞으로 더 나은 질문을 하실 수 있도록 설명과 함께 답변해 드리겠습니다. 나중에 이 문제를 다른 문제로 전환하지 않는 것이 합리적이라고 생각합니다.

코어는 low-latency더 낮은 대기 시간으로 인터럽트와 짧은 작업을 처리할 수 있습니다. Ubuntu에서는 실제 라이브 커널 패치를 사용하지 않지만 소위 PREEMPT구성을 사용합니다. PREEMPT지원이 없으면 커널이 특정 시스템 호출을 실행하기 시작하면 하드웨어 요청(예: MIDI 명령)이 들어와도 중단되지 않는다는 아이디어입니다 . 필요한 경우 시스템 호출이 PREEMPT중단됩니다 .

시스템 호출을 중단할 수 없는 일반 커널을 실행하는 경우 얻을 수 있는 최대 대기 시간은 시스템 호출의 최대 길이입니다.어느시스템의 프로세스가 만듭니다. 따라서 대기 시간에 대한 정보를 추정하기가 더 어려워지며 일반적인 해결 방법은 더 큰 버퍼를 사용하는 것입니다. 이로 인해 오디오 처리에 대한 대기 시간이 길어지는 것은 당연합니다.

선점을 가능하게 하는 데 필요한 커널 기능은 전체 CPU 사용량에 약간의 오버헤드(아마도 0-2%)를 발생시키므로 범용 커널에서는 활성화되지 않습니다. 또한 선점은 커널에서 알 수 없는 프로그래밍 오류를 유발할 가능성이 더 높습니다. 이는 시스템 호출이 중단될 수 있고커널 코드가 잘못 작성되었습니다.해당 코드가 중단되지 않는 경우에만 실수로 작동할 수 있습니다(예: 시스템 호출이 중단되지 않으면 실제로 공유할 수 없는 일부 공유 구조에 대한 메모리 잠금을 획득하지 못하지만 시스템 호출이 중단되면 공유 구조는 다음과 같은 작업을 수행할 수 있습니다. 동시에 여러 CPU 코어에 의해 수정되고 중단될 수 있습니다.)

NVIDIA 드라이버의 현재 상황은 모르지만, 예를 들어 VirtualBox 커널 드라이버는 과거에 이러한 드라이버의 많은 버그로 인해 대기 시간이 짧은 커널에 큰 문제가 있었습니다. VirtualBox 커널 드라이버는 low-latency요즘 커널에서 더 잘 작동하는 것 같습니다. 몇 년 동안 어떤 문제도 본 적이 없습니다.

손상된 장치 드라이버가 없고 지연 시간이 짧은 하드웨어 인터럽트 처리를 원하는 경우 항상 지연 시간이 짧은 커널을 사용하는 것이 좋습니다.

저렴한 USB 연결 마이크가 있고 오디오 출력을 위해 마더보드 통합 사운드 카드를 사용하는데, 이것은 마이크가 오디오를 녹음할 때부터 사운드 카드가 전체 펄스 오디오 스택을 통과한 후 오디오를 재생할 때까지의 대기 시간을 얻기에 충분합니다. 10밀리초 미만으로 설정합니다. 더 나은 하드웨어를 사용하면 특히 JACK을 사용할 때 지연 시간을 2밀리초 미만으로 줄일 수 있습니다.

간단히 말해서:대기 시간이 짧은 코어는 모든 작업의 ​​대기 시간을 줄여주지만 CPU 사용량은 약간 증가합니다. 코어가 없으면 low-latency수신 데이터의 최대 대기 시간은 다음에 따라 달라집니다.전체 시스템의 최대 시스템 호출 대기 시간. 백그라운드 프로세스에 주의하지 않으면 사운드가 갑자기 뛰거나 MIDI 동작이 무작위로 지연될 수 있습니다. 커널 에서는 low-latency메모리가 부족하지 않는 한 백그라운드 작업은 중요하지 않습니다. 고성능 컴퓨팅(HPC)을 수행하거나 암호화폐 채굴을 하지 않는 한 일반적으로 모든 것의 대기 시간이 최대 CPU 처리량보다 낮기를 원하므로 대기 시간이 짧은 코어를 사용하지 않는 유일한 이유는 잘못된 장치 드라이버여야 합니다.

지연 시간이 짧은 코어에서 오디오 건너뛰기 또는 지연 문제가 발생하는 경우 오픈 소스 GPU 드라이버(NVIDIA GPU용 Nouveau 드라이버)로 테스트해 보고 문제가 사라지면 문제를 발견한 것입니다.

나는 약 10년 동안 내 모든 시스템에서 지연 시간이 짧은 커널을 실행해 왔고, 범용 커널보다 훨씬 더 만족스럽습니다.

그리고 메모리 클럭을 확인하세요. 대기 시간이 짧은 코어로 인해 마더보드의 전력 요구 사항이 높아질 수 있으며, 마더보드나 PSU의 전원이 충분히 공급되지 않는 경우 매우 빠른 속도로 메모리 클럭을 실행하려고 하면 모든 문제를 일으키는 메모리 오류가 발생할 수 있습니다. 일종의 무작위 불안정. 다른 작업을 수행하는 동안 백그라운드에서 RAM의 50% 이상을 사용해 보십시오 mprime. 스트레스 테스트 모드에서 실행하십시오. 오류가 감지되면 RAM이 제대로 작동하지 않는 것이므로 낮은 대기 시간이나 범용 코어를 원하는 경우에는 사용해서는 안 됩니다. 안정적인 시스템. 범용 커널은 하드웨어 요구 사항이 낮을 수 있으며 결함이 있는 메모리에서 발생하는 버그도 더 적습니다. 하지만 걱정하지 마십시오. 범용 커널을 사용하더라도 조만간 문제가 발생할 수 있습니다.

관련 정보