Re: Problems about MS DV Encoder/Decoder



"zyy" <yayu_zhang@xxxxxxxxxxx> wrote in message
news:1133421790.100428.310370@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> [...]
> The CPU of my computer is P4 3.0 HyperThread. When the application is
> running, the usage of CPU is upto 50%, even more decoding thread i
> start. Is there the limitation that the MS DV decoder will use only on
> CPU?

A couple of notes on Hyperthreading:

1) A process using 100% of the capacity of a single execution unit will be
reported as 50% CPU utilization.

2) Using both virtual execution units on a Hyperthreading CPU may or may not
improve performance and in fact, if there is significant cache contention,
throughput may actually be *lower* when Hyperthreading is enabled (even
though utilization may actually be reported as 100% instead of the 50% you'd
see on a single execution unit).

The bottom line is that Hyperthreading can be very effective for allowing
two different processes to execute simultaneously with improved performance,
but for multiple threads within the same process to take advantage of
Hyperthreading, they need to be written carefully so as to avoid cache
contention, otherwise Hyperthreading will hurt rather than help.

(The main reason separate processes share the cache okay is simply that they
are usually different enough that the chance of them interfering with each
other's use of the cache is low...there's no guarantee they actually won't).

> There problem of MS DV Encoder is that: If there are two ecoding thread
> in one process, the application will crash. The image format and size
> set to the two MS DV Encoder are same.

I have seen messages in this newsgroup in the past saying that there is a
bug in DirectShow that can lead to crashes when Hyperthreading is enabled.
I would think the bug would be present any time there is more than one CPU,
virtual or otherwise, but the issue has only been mentioned in the context
of Hyperthreading, as far as I can recall. That may be because
Hyperthreading CPUs are much more common than actual multiple-CPU computers.
I don't know.

Generally speaking, if you do have a crash like that, you can make it go
away by disabling the second CPU. This can either be done machine-wide
(setting in BIOS), or per-process (set the CPU affinity in the Task
Manager). Of course, that means you can't take advantage of the extra CPU,
but with Hyperthreading that may be no big loss.

Pete


.



Relevant Pages

  • Cannot get Hyperthreading working on Asus P4PE-X
    ... Everything I can find suggests that it should support hyperthreading but ... According to the intel site the specific model of CPU and the chipset ... Intel machine check architecture supported. ...
    (Linux-Kernel)
  • Re: Simultaneous Playback of 4-video files with D1 resolution
    ... A single-threaded application will gain no benefit from hyperthreading, ... Inasmuch as on Windows there is always *something* competing for CPU time, ... an application coded with multiple *independent* threads ... share a single cache. ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: Multithreading =?ISO-8859-15?Q?f=FCr?= FOR-Schleife
    ... Bei mir unter Linux 2.6.13.4 (1 CPU, Hyperthreading): ... >>auf jeder CPU wirklich gleichzeitig ein Thread ...
    (de.comp.lang.java)
  • RE: Guide Download Problem - a fix!
    ... background that is driving the CPU to 100% then anything using Microsoft's ... between one cpu and hyperthreading mode by going into the bios settings at ... system administrator to make sure your firewall is properly configured". ...
    (microsoft.public.windows.mediacenter)
  • Re: Hyperthreading with SMP in 5.2
    ... I understand that the kernel is now smp aware by default but ... > does it handle the logical cpu's of hyperthreading in the same manner as ... > I ask as for the best part my machine rarely goes above 50% cpu ... We're working on making the FreeBSD kernel more efficient ...
    (freebsd-current)