Annons

Är det sant att PS CS3 bara kan utnyttja en kärna?

Produkter
(logga in för att koppla)

Eeros

Aktiv medlem
Byggde en ny dator och ville så klart testa hur den i PS prestandamässigt skiljde sig från min gamla dator, så jag körde prestandatestet som Daniel Nyberg har lagt ut här i forumet. Samtidigt hade jag aktivitetshanteraren framme för att se hur mycket minne och aktuell prosessorkärna belastas. Döm om min förvåning när aktivitetshanteraren visade prosessorns användningshistorik som i bilden här nedan, dvs att alla kärnorna arbetade med uppgiften.

Jag hade ju hört ofta här på FS om hur PS bara kan utnyttja en kärna, så min första tanke var att aktivitetshanteraren måste visa fel. Därför testade jag ifall aktivitetshanteraren alltid, oavsett vad datorn gör, visar likadana grafer för alla kärnor. Jag stängde PS och öppnade den igen, för att se hur prosessorkärnorna belastas under uppstart. Men då var det bara en kärna som fick en starkt uppåtgående pik i grafen. Därmed omkullkastades min första tanke om att aktivitetshanteraren skulle visa likadana kurvor för alla kärnor, oavsett om mängden aktivitet skiljde sig mellan kärnorna.

Så nu sitter en tanke och spirar i mitt bakhuvud, som säger att PS (version CS3) faktiskt utnyttjar alla kärnorna. Men någon här kanske har mer kunskap om varför aktivitetshanteraren visar som den gör, fastän PS inte ska kunna utnyttja de extra kärnorna?
 

Bilagor

  • prestanda.jpg
    prestanda.jpg
    48.5 KB · Visningar: 316
Så här ser det ut när PS startas, vilket var som jag hade väntat mig innan testet. Så här trodde jag även att grafen skulle se ut när PS utförde beräkningar. Dvs att det blir en pik i endast en av kärnorna:
 

Bilagor

  • Prestanda2.jpg
    Prestanda2.jpg
    45.9 KB · Visningar: 308
Och prosessorn är Intels i7, operativsystemet 32-bitars XP Pro, samt PS CS3.

Obs! Har ingen aning eg. Jag bara gissar lite. Om du jobbar lite i ps cs3 med diverse olika uppgifter så ser du att normalt så är det i första hand en kärna som får ta jobbet. Jag kan tänka mig, utan att ha den blekaste aning om exakt hur algoritmerna för de olika filtren ser ut, att vissa filter som tex då blur använder sig av flera trådar. Om programmet anropar operativet och ber om flera olika körtrådar så kan operativet fördela ut dessa på olika kärnor. Skillnaden mellan detta och ett "anpassat" program för flera kärnor är att man medvetet försöker dela upp så mycket uppgifter som möjligt på olika kärnor i det senare alternativet. Det är kanske inte helt lätt att inse men det är inte alltid helt lätt att dela upp arbetet på flera körställen eftersom man kanske är beroende av resultat från föregående operation för att kunna gå vidare. I en sådan situation så finns det ingen vinst i att fördela arbetet på flera kärnor eftersom arbete2 ändå måste vänta tills arbete1 är klart och levererar sitt resultat sas...

Jag får samma resultat som du när jag kör den där radial blur.

Mvh
Jerka
 
Hej!
Jo den klarar av två kärnor, det är ingen skillnad, det är datorn som bestämmer. Men det klarar inte 64-bitars istället, det är där PS falerar, det är enbart nya CS4 med 64-bitarsstöd som klarar av detta.
Hur många kärnor man har är enbart hårdvarebaserat, medans 32vs64 är mjukvarubaserat
 
Det är fyra kärnor, och åtta trådar som visas i skärmdumpen, det är viktigt att särskilja för de som inte har dunderkoll på vad i7 är för cpu.

http://blogs.adobe.com/jnack/2006/12/photoshop_and_multicore.html

The operations that scale best in Photoshop are those that:

1. Do a lot of computation for each pixel fetched. Shadow/Highlight correction is an example of an operation that has to do a lot of computation on each byte fetched, while normal blending does very little. A giant-radius blur is an example of the opposite extreme: lots of pixels have to be fetched to do a simple computation and produce one output pixel.
2. Do pixel-based operations that take advantage of Photoshop's framework for parallel computation. Most filters and adjustments fall into this category. But many text tool operations and the solution of partial differential equations required for the healing brush are examples of things that don't fit this framework..

To take good advantage of 8- or 16- core machines (for things other than servers), we'll need machines whose bandwidth increases with the number of cores, and we'll need problems that depend on doing relatively large amounts of computation for each byte fetched from main memory (yes, re-reading the same data you've already fetched into the caches counts). Complex video and audio signal processing are good examples of these kinds of tasks. And we're always looking for more useful things that Photoshop can do that are more computationally intensive.

Kan vi få ett slut på lögnerna om att Photoshop bara stödjer en kärna nu? :p
 
ANNONS
Götaplatsens Foto