RHEL 6.6のNVIDIA Tesla K20c GPUでmp3ファイルをデコードしようとしています。

RHEL 6.6のNVIDIA Tesla K20c GPUでmp3ファイルをデコードしようとしています。

mpg123を使ってmp3ファイルを再生しようとしていますが、GPUでは難しいです。

多くの研究の最後に、私の要件に最も近いコマンドは次のとおりです。

mplayer -vo vdpau and -vc ffh264vdpau, ffmpeg12vdpau, ffmwmv3vdpau, ffvc1vdpau -ao alsa filename.mp4

しかし、これらのコマンドのいくつかをインターネットで検索した後、このコマンドはビデオデコードのためのものであることに気づきました。

私はこのコマンドをmpg123に調整して実行しました(どの応答を受け取るかを確認するため)。

mpg123 -vo vdpau and -vc ffh264vdpau, ffmpeg12vdpau, ffmwmv3vdpau, ffvc1vdpau -ao alsa /root/Downloads/Traintoleave.mp3

私が得た結果は次のとおりです。

High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
    version 1.23.8; written and copyright by Michael Hipp and others
    free software (LGPL) without any warranty but with best wishes
Decoder: x86-64 (AVX)
Trying output module: vdpau, device: <nil>
[src/libout123/legacy_module.c:40] error: Unable to open requested module 'vdpau'.
[src/libout123/legacy_module.c:42] error: The only available statically compiled module is 'alsa'.
[src/libout123/libout123.c:432] error: Found no driver out of [vdpau] working with device <default>.
main: [src/mpg123.c:333] error: out123 error 3: failure loading driver module

mpg123を使用してNVIDIA GPUでオーディオファイルを実行し、実行時間を監視する方法をまだ理解していません。

どんな助けやアドバイスにも感謝します。

編集:端末で次のコマンドを実行しました。

sudo aplay -L

次の出力を取得します。

default
    Default
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC280 Analog
    Front speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC280 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC280 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC280 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC280 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC280 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output

しかし、これはmpg123情報ではなくaplay情報だけです。他のソースでは、aplayはwavファイルの再生にのみ使用されることがわかりました。

別のstackoverflow質問のおかげで、デバイスIDを正常に追跡できました。コマンドを実行しsudo aplay -l、次の出力を取得します。

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC280 Analog [ALC280 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

この情報を使用して、mpg123を使用してmp3ファイルを再生しました。

mpg123 -D hw:1,3 sample.mp3

これにより、次のような結果が得られます。

High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
    version 1.23.8; written and copyright by Michael Hipp and others
    free software (LGPL) without any warranty but with best wishes
Invalid shared memory segment size
Invalid shared memory segment size


Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: sample.mp3 ...
Invalid shared memory segment size

MPEG 1.0 L III cbr128 44100 stereo
Invalid shared memory segment size
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7246:(snd_pcm_recover) underrun occured

[0:06] Decoding of sample.mp3 finished.

このオーディオファイルがGPUで再生されているのか、他のプロセッサで再生されているのかはわかりません。このファイルがGPUで再生されていることをどうやって確認できますか?

編集する:

VLCはGPUパフォーマンスを利用してオーディオをデコードできますか?このリンクからアイデアを得ましたが、わかりません。https://askubuntu.com/questions/240386/how-do-i-enable-hardware-accelerated-video-in-vlc-with-intel-hd-4000-gpu

ベストアンサー1

私はGPUで実行されているMP3デコーダの公に利用可能な実装を知りません。確かにLinuxではなく、mpg123vdpau(ビデオデコード用)を使用しません。

GPUで効率的に実行するために必要なMP3デコードを並列化することは容易ではないかもしれません。

たとえば、一部のGoogle検索ではこの記事これはカスタムCUDA実装を使用しているようで、CPUで実行するのと比較して省電力効果を報告します。 (原文は要望に応じて提供されますので、公演については不明です。)

実行するすべての測定は、CPUとGPUの両方のケースで実装品質に大きく依存します。

おすすめ記事