Author Topic: Which graphics card to offload the CPU?  (Read 4632 times)

jampy

  • Making baby steps
  • Posts: 2
    • View Profile
Which graphics card to offload the CPU?
« on: August 27, 2008, 12:51:30 am »
Hi,

I am pretty sure that I read somewhere that LinucMCE supports certain graphics cards (Nvidia?) that can decode the MPEG stream themselves and so the CPU does not have much to do. Is this correct, and if so, which graphics card can do this?

My current idea is this:
- separated Core and MC
- both are passively cooled, low-end Thin Clients (Pentium 800 MHz or so)
- Core receives video via DVB-S(2), so does not have to do any encoding/decoding -> low CPU requirements
- MC lets the graphics card decode the HTDV MPEG stream which is connected to my TV via HDMI -> also low CPU requirements
- Core and MC are connected via Ethernet (wired)

Additional question: Can this graphics card also be used to decode DivX files and such?

Thanks for any hint..

charlie1953

  • Regular Poster
  • **
  • Posts: 22
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #1 on: August 28, 2008, 12:47:34 pm »
I know very little but would like a definitive answer on exactly what you are asking.

I have read in other Linux forums that there is a problem getting Linux drivers that take advantage of hardware acceleration of graphics cards. People say that this doesn't matter with modern CPUs but if you are trying to use a 800 MHz Pentium you may have a problem. (It is possible that I have been misinformed by out of date web pages but this topic seems to be very confusing and controversial)

(BTW I assume that what you refer to as "MC" should read MD - Media Director)

I have set up my LinuxMCE core and am experimenting using my normal workstation as an MD by editing the BIOS to get it to boot from the LAN.
This works well and I am getting the hang of how LMCE will work for me.

My current project is to build an MD for the Living Room to connect to my Sony Bravia 42inch LCD using the HDMI connector.

I would like to maximize the quality of my home theater experience including getting full Blu Ray support.

To do this, I too would like to spread the load between the CPU and the Graphics card and reduce cooling requirements but as I say, my research tells me this could be a problem.

AT this stage I have not bought any gear for my MD. Any definitive advice on what to buy to get a future-proof set up would be most welcome.
(Note that within reason price is not a problem - I want to get the right stuff and only buy once)

thanks in advance for any tips

jondecker76

  • Alumni
  • wants to work for LinuxMCE
  • *
  • Posts: 763
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #2 on: August 28, 2008, 02:17:11 pm »
I just started using one of these:
http://www.newegg.com/Product/Product.aspx?Item=N82E16814500033
Its a cheap ($27.00!), fanless NVidia 7300GT PCI-X card - 128 bit, 256MB ram. It works great in my hybrid. (Though it is a VGA/DVI combo card, so if you use VGA, you have to use a DVI->VGA adapter as the VGA still maps to the DVI port).

If you don't have a PCI-X slot available, I also am using both AGP and PCI versions of the following cards with no problems: (all of which ran UI2+alpha blending with no problems)
Geforce 5200 128MB
Geforce 5200 256MB
Geforce 5600 256MB


I use VGA connection on all of my cards. IMO, looking for cards or motherboards with component out and/or HDMI is a waste of my time. Component connections suffer from terrible overscan (which is not easy to correct with modelines), and HDMI has been flaky for some (due to driver support esp. when it comes to audio). Most flatscreens have a VGA or DVI input, and DVI->HDMI adapters work pretty well.
I'm pretty sure most modern cards will support hardware decoding.

Regarding your proposed setup -
the thin clients sound fine as MD's.. However, make sure you plan ahead with your core or core/hybrid. You would be suprised how much power you'll need when you get into streaming many streams at once, while recording shows with MythTV and ripping DVD's, and having background processes such as myth Transcoding, commercial flagging etc running in the background - amongst all the other stuff the core is responsible for. I would highly recommend something like an Asus M2n-SLI Deluxe with an AMD BE-2400 processor running LMCE 32 bit for the core.  For the MD's, I also have some low-end machines (PIII's and even a PII) that run just fine. The worse one only has 256MB ram but works - though it is a little slow, so I would recommend 512MB for the MD's. While on the subject, at least 1GB for the core.


jondecker76

  • Alumni
  • wants to work for LinuxMCE
  • *
  • Posts: 763
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #3 on: August 28, 2008, 02:20:16 pm »
Another note -

HD is all the rage right now. But keep in mind, that the higher up you go, the more processing power and network bandwidth you are going to need.

Take for example, all of my TV's only go to 720p. Therefore it would be a waste for me to run LMCE in 1080, as it would be dowscaled for my TV anyways. If you are in a similar situation, then a VGA port (if your TV has one) is a very easy, cheap and trouble-free way to go, and you will easily get the 720p quality with this connection.

jampy

  • Making baby steps
  • Posts: 2
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #4 on: August 29, 2008, 10:24:42 am »
VGA is fine for my as my LCD screen has a VGA input and I often connect my laptop to it, although I can't set the screens native resolution on my laptop which decreases the quality a bit. I use 1280x768 as the scren doesn't seem to handle higher resolutions. This may be because the analog signal frequencies become to high for the TV.

It is a "HD ready" screen, so per definition it should be able to handle 1920x1080i.

AFAIK the GeForce 8400 / 8600 cards decode H.264 video (http://www.nvidia.com/page/purevideo_HD.html) and so the CPU just has to deliver the MPEG stream to the graphics card. However, I don't know if LinuxMCE can take advantage of this.

H.264 is used in DVB-S2 which will be my primary video source apart from stored DivX/Mpeg/whatever videos. Standard-Resolution DVB-S uses MPEG2 (H.262).

This sounds to my like the GeForce can work with a small CPU and decode all kinds of MPEG video. At least I hope so because I want my MD to be small and silent...

The Core will be in a different room and is much less critical, altough I'd like to keep power consumption at a minimum.

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #5 on: August 29, 2008, 10:44:16 pm »
In short, it can't.

Don't ask. NVIDIA will not add the capability to the Linux drivers. Game over. You have to use the CPU to decode everything... either that.. or learn GPU microcode, and do a shader. :)

-Thom


VGA is fine for my as my LCD screen has a VGA input and I often connect my laptop to it, although I can't set the screens native resolution on my laptop which decreases the quality a bit. I use 1280x768 as the scren doesn't seem to handle higher resolutions. This may be because the analog signal frequencies become to high for the TV.

It is a "HD ready" screen, so per definition it should be able to handle 1920x1080i.

AFAIK the GeForce 8400 / 8600 cards decode H.264 video (http://www.nvidia.com/page/purevideo_HD.html) and so the CPU just has to deliver the MPEG stream to the graphics card. However, I don't know if LinuxMCE can take advantage of this.

H.264 is used in DVB-S2 which will be my primary video source apart from stored DivX/Mpeg/whatever videos. Standard-Resolution DVB-S uses MPEG2 (H.262).

This sounds to my like the GeForce can work with a small CPU and decode all kinds of MPEG video. At least I hope so because I want my MD to be small and silent...

The Core will be in a different room and is much less critical, altough I'd like to keep power consumption at a minimum.

colinjones

  • Alumni
  • LinuxMCE God
  • *
  • Posts: 3003
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #6 on: August 29, 2008, 11:13:38 pm »
HD Ready can mean anything over Standard/Enhanced Definition. 720p is also HD and often it is used just to mean that, so don't be fooled, check the native res specs.

Don't bother with 8400/8600 cards, as Thom says they are not going to help you with decoding, but are more difficult to get going. The 6000/7000 series are adequate - 6200 or 7300 are very common. Remember decoding is much less heavy duty than encoding so with a decent CPU you will be fine.

colinjones

  • Alumni
  • LinuxMCE God
  • *
  • Posts: 3003
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #7 on: August 29, 2008, 11:17:44 pm »
Forgot to say - the discussions you will see here about a card's acceleration relate to the acceleration of the OpenGL, composite/overlay and Alphablending features that are used to draw the UI and merge it with the already-decoded video stream, not the actual decoding...

tekoholic

  • Veteran
  • ***
  • Posts: 96
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #8 on: September 01, 2008, 05:10:18 am »
Thom,

Sad but true, and this brings up the question: Why is it that LinuxMCE is so tailored to the Nvidia GPU's?

Mind you, I love LMCE, and use / recommend nothing but Nvidia when given the choice.

But...  If I had my choice, specifically for their closed attitude toward giving us the same functions and features that are given to the Windows'ers, I'd bail in a heartbeat.

I'm hoping that, now that AMD/ATI has reportedly open-sourced their drivers, we'll see these GPU's better supported by LMCE, and the drivers will perform as they should...

In short, it can't.

Don't ask. NVIDIA will not add the capability to the Linux drivers. Game over. You have to use the CPU to decode everything... either that.. or learn GPU microcode, and do a shader. :)

colinjones

  • Alumni
  • LinuxMCE God
  • *
  • Posts: 3003
    • View Profile
Re: Which graphics card to offload the CPU?
« Reply #9 on: September 01, 2008, 05:48:08 am »
tekoholic - its not tailored to nVidia specifically, its just that at the time nVidia were the only one with a Linux driver that provided access to the hardware acceleration features needed to do some of the graphics that LCME relies on. And then only in a proprietary driver. Yes, lets hope that the competition livens up with ATI/Intel providing open source drivers, but just because there is an open source driver doesn't mean that they will expose all of the hardware acceleration that their chipsets are capable of (in fact, because they are open source, I would say this limits how much they will expose, as a lot of the advanced stuff is highly proprietary, and commercial organisations get skittish at revealing too much that may enable their competitors to benefit! Damn them!)