Photoshop and GPUs

nvsravank

Member
Jul 14, 2005
54
0
0
Ok Photoshop is one of the fastest image editing program out there (maybe not, but lets just assume that).

But still it takes a while to process an image. Quite a bit sometimes.

Well from what I read Images manipulation is the reason for the long times in some algorithms. 32 bit colors need 32 bit processing.

Now GPU can do these operations fast. So why doesnt photoshop use GPU to speed up things?
 
Oct 24, 2005
74
0
0
Probably for accuracy and consistency. Gaming cards take shortcuts for speed.
Apple was talking about getting their Core Graphics technology to power Photoshop. I don't think that plan materialized.
 

f95toli

Golden Member
Nov 21, 2002
1,547
0
0
Because a GPU is optimixed for 3D performance which basically means it is a good at vector operations. I don't think it would be faster to do a FFT (which is what takes time in the filter-alghoritms) in a GPU than in a CPU.

Another, simpler, reason is that Photoshop is already pretty fast if you have enough memory, the speed is often limited not by the CPU speed but by the available RAM memory.
If you are doing "serious" image editing the size of the images can be several hundred MB and in order to work efficiently you need a couple of GB of RAM.

 

rivan

Diamond Member
Jul 8, 2003
9,677
3
81
Photoshop is indeed quite fast if given enough RAM, in most tasks. If you can keep PS from hitting your disk, you'll rarely have to wait for much.

The only time you'll generally see a progress bar is when running filters, scaling very large objects/groups and during saves/reads, even on the largest of images (I work weekly on images that exceed 4G when saved to disk). I'm no GPU expert, but knowing what little I do about how filters work and what GPUs do, I don't think there would be much in the way of gains for most operations. I could imagine scaling operations could be done on a GPU, but what gains (if any) there might be I can't begin to speculate.
 
Oct 24, 2005
74
0
0
Aye, but any 3D card can do 2D quite well. Certainly much faster than your CPU. Some solutions offer video encoding as well as simpler Photoshop features. Loading from system memory to video memory would be a trivial operation.
 

f95toli

Golden Member
Nov 21, 2002
1,547
0
0
I still don't see why a GPU would be faster than a CPU. In order to do things like FFT, scaling etc in hardware you would need a real DSP (with 32 bit precision), not a GPU.

Another problem is that many operations need to be done on the whole image (matrix) at once, meaning the GPU would need to have a LOT of on-board memory (e.g 2 GB) available.



 

Woodchuck2000

Golden Member
Jan 20, 2002
1,632
1
0
To be fair, it's certainly possible (in theory) to offload certain calculations onto a GPU and gain a net increase in speed as a result.

It's a question of whether the benefits outweight the cost of development and at the moment the answer is a resounding no. Until an API for easy use of a GPU as a co-processor comes along (which I think will happen in a few years) each individual chip will probably need to be coded for. I imagine that only the highest-end GPUs at the moment would yield a significant boost and only then within certain operations, when compared with a CPU.

There has been talk of using GPUs for Audio DSP functions and for Physics calculations in certain situations. I think in a few years time there <will> be standard APIs to take advantage of such possibilities but until then we're stuck.
 

gsellis

Diamond Member
Dec 4, 2003
6,061
0
0
You missed this when it happened. The GPU could be used and Photoshop doesn't. Case in point, Pinnacle uses the DirectX APIs to do frame renders in their editor as well as render in realtime for playback at 30fps (or 60fps for 1080i). With DirectX graphics calls, no per processor code required. Just hand it to the API. That is part of why Pinnacle likes PCI-e and 256MB of graphics memory for doing 1080i HDV.

Edit - Heavily used in Liquid Edition 5 on, some in Studio 9, more in Studio 10 (built on the Liquid 6.x engine).
 

Woodchuck2000

Golden Member
Jan 20, 2002
1,632
1
0
Originally posted by: gsellis
You missed this when it happened. The GPU could be used and Photoshop doesn't. Case in point, Pinnacle uses the DirectX APIs to do frame renders in their editor as well as render in realtime for playback at 30fps (or 60fps for 1080i). With DirectX graphics calls, no per processor code required. Just hand it to the API. That is part of why Pinnacle likes PCI-e and 256MB of graphics memory for doing 1080i HDV.

Edit - Heavily used in Liquid Edition 5 on, some in Studio 9, more in Studio 10 (built on the Liquid 6.x engine).
Yes, but photoshop is aimed at an entirely different market where precision is king. It's a great solution for doing realtime video effects but in terms of calculating high-precision filters for a static image, trying to do it using DirectX would simply not allow the same quality as a CPU-bound filter created by Adobe.
 

f95toli

Golden Member
Nov 21, 2002
1,547
0
0
Exactly, you need to rembemer that even HDTV is low-res and low-precision compared to the kind of precision you need for pro photo-editing.
 

Falloutboy

Diamond Member
Jan 2, 2003
5,916
0
76
tbh, photoshop run farily quick. now if they ever made photoshop resolution independent and renderd the filters on the fly then you might need some more power
 

DrPizza

Administrator Elite Member Goat Whisperer
Mar 5, 2001
49,601
166
111
www.slatebrookfarm.com
Just a thought, but maybe the people who make photoshop looked at the demographics of their user base and concluded that the majority of them don't have $300-$400 gaming cards with super fast GPU's? If they optimized Photoshop to use the GPU, then, perhaps, everyone who doesn't want the extra expense of a faster graphics card would see a drop in performance for Photoshop.
 

gsellis

Diamond Member
Dec 4, 2003
6,061
0
0
Originally posted by: Woodchuck2000
Originally posted by: gsellis
You missed this when it happened. The GPU could be used and Photoshop doesn't. Case in point, Pinnacle uses the DirectX APIs to do frame renders in their editor as well as render in realtime for playback at 30fps (or 60fps for 1080i). With DirectX graphics calls, no per processor code required. Just hand it to the API. That is part of why Pinnacle likes PCI-e and 256MB of graphics memory for doing 1080i HDV.

Edit - Heavily used in Liquid Edition 5 on, some in Studio 9, more in Studio 10 (built on the Liquid 6.x engine).
Yes, but photoshop is aimed at an entirely different market where precision is king. It's a great solution for doing realtime video effects but in terms of calculating high-precision filters for a static image, trying to do it using DirectX would simply not allow the same quality as a CPU-bound filter created by Adobe.
DirectX can be used to do many of the functions that the CPU filters do and it speaks the language. With some of the shaders and AA/AF available through hardware, you can run parts of the passes through the video card. Nobody really thought of using it before. MS has now seen the trend and Vista will have a GPU manager and graphics memory manager much like it does with CPU and main memory now because more and more applications are taking advantage of the GPU, including Vista.
 

kpb

Senior member
Oct 18, 2001
252
0
0
I see a number of problems with implimenting gpu acceleration in photoshop. Several have already been pointed out but others haven't.

1) No standard for dealing with gpus in this manner yet. This means hand writing low level code specific to that family of video cards. Would either require lots and lots of work or be specific to very few video cards. Not to mention the likelyhood of needing to update it as new cards come out. Either way I don't see a whole lot of benifit for alot of work.

2) MEMORY- Your best possible standard video card has 512 mbs of ram now a days but even those are rare. 256 being more common max and 128mb cards still being common. Heck the min system requirements for ram is 384 mbs of ram. Obviously you'd probably be able to get by with a little less on the card since only the graphical information would need to be there but still. If you seeing any significant performance issues with photoshop it's a safe bet that your using graphics files at least 512mb in size if not significantly larger. What ever performance benifit might be gained by using a gpu would probably be lost shuffling stuff in and out of memory on the video card. Honestly the main thing that will make photoshop "Slow" is running out of memory and going to an even more memory limited environment isn't going to help that. I don't see any videocards with 2+ gb's any time soon. Heck can break 4gbs on a 64 bit system.

3) Acceleration would be very limited scope. You'd probably really only end up being able to accelerate a few select filters and specific functions that were very math heavy. Simular to how current multiprocessor or mmx/altvec/etc support is implimented but probably even a smaller set. Once again benifit vs time.

4) Future comparisons. I'd have to say that something like this would have to happen in the next version of the software and probably couldn't be added on to the exsisting version. Thats 6+ months down the road since adobe hasn't said anything about it yet. By that point the dual core cpu's will be even more common and probably be looking at 4way cores in the near future. That sounds like lots of processing power from the cpu's to me that should take little to no effort to support. Hell apple just announced the g5 quad, dual core dual processor beast. Or go make a comparable windows system with dual core opterons. If you need that much power you have access to it today.
 

Bassyhead

Diamond Member
Nov 19, 2001
4,545
0
0
Originally posted by: DrPizza
Just a thought, but maybe the people who make photoshop looked at the demographics of their user base and concluded that the majority of them don't have $300-$400 gaming cards with super fast GPU's? If they optimized Photoshop to use the GPU, then, perhaps, everyone who doesn't want the extra expense of a faster graphics card would see a drop in performance for Photoshop.


Good point. I don't see professionals buying high end graphics cards just to accelerate Photoshop while they can spend more torwards the CPU/RAM and acheive better system applications performance overall, not just to Photoshop.
 

Mark R

Diamond Member
Oct 9, 1999
8,513
16
81
When CPUs were slower, there was a definite market for photoshop accelerator cards.

These cards featured a number of DSPs (Digital signal processors). Usually 4, though I think some had 8 processors. The card would come with an updated set of filters which would use the DSPs. I believe they claimed performance increases of up to 4x for some filters (e.g. Gaussian blur). I think one of these cards cost about as much as a high end workstation - so they weren't cheap.

With modern CPUs being so fast, it's debateable whether such a card would be marketable today.
 

DrPizza

Administrator Elite Member Goat Whisperer
Mar 5, 2001
49,601
166
111
www.slatebrookfarm.com
kpb mentioned a best possible standard video card.

Again, video cards aren't even standard in computers! We're discussing this in a forum where many people play 3-D games. But, (and just to be sure, I just went to the Dell site) even 128Mb cards are a $60 upgrade on the Dimension 3000 computers. The typical computer sold today doesn't have a separate graphics card!
Go ahead, check for yourself.
Dimension 3000 series... it's an upgrade.
E510 series of desktops... it's an upgrade.
It isn't until you hit the XPS 400 that a 128MB card comes with it.
Look under business computers..
Not until you reach the Dimension 9100 enhanced do you see a video card as standard.

Since the average person who might be using photoshop probably doesn't have a dedicated graphics card, why should they bother? Heck, I'm almost proud now that I have a 64Mb graphics card Unfortunately, my kids' computer gives them a horribly unfair advantage when we play quake3-D against each other.
 

dwcal

Senior member
Jul 21, 2004
765
0
0
Originally posted by: kpb
What ever performance benifit might be gained by using a gpu would probably be lost shuffling stuff in and out of memory on the video card.
This is one of the big problems of AGP. Drivers are optimized for moving data from the CPU to the video card. Trying to move data from the video RAM back to system RAM is very slow. PCI Express is much better at transferring data both directions, but you still have the problem of rendering accuracy. It might still be useful for quick previews.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: dwcal
Originally posted by: kpb
What ever performance benifit might be gained by using a gpu would probably be lost shuffling stuff in and out of memory on the video card.
This is one of the big problems of AGP. Drivers are optimized for moving data from the CPU to the video card. Trying to move data from the video RAM back to system RAM is very slow. PCI Express is much better at transferring data both directions, but you still have the problem of rendering accuracy. It might still be useful for quick previews.

GPUs are plenty accurate when you tell them to be. The problem is that they're not built anything like general-purpose CPUs, so running 'normal' programs on them is impossible (plus the problems mentioned with them not having much RAM compared to a high-end system, and that transferring data back and forth may not be as fast as you would like).
 

rivan

Diamond Member
Jul 8, 2003
9,677
3
81
Originally posted by: dwcal
It might still be useful for quick previews.

I can see where this could be a big help - the previews of filters are sometimes very sluggish, and rendering it on a GPU might help somewhat.

Someone above mentioned demographics, and it got me thinking further on the issue.

Currently, I'd speculate that about 60% of (paying) Photoshop users are Macintosh-based (mostly the print & advertising fields), which means that hardware is somewhat behind state of the art as compared to the rest of the world. I'd guess the remaining 40%, on Windows, is mostly web-based in their applications, and as such work on screen-resolution images - which are small enough that nothing takes any time.

I'm part of the advertising/print Macintosh user segment, and would further speculate with an average, relatively current G5 based, dual processor graphics workstation, that the gains in rewriting sluggish portions of the code to make extensive use of dual processors would far outweigh data being sent to a GPU and back. With the overall move of PCs to dual core processors, I'd expect this to become more and more relevant.

I wonder if multi-core is the future of desktops... if in 10 years I'll be working on a 32-processor 5.5 ghz G8.
 

mjia

Member
Oct 8, 2004
94
0
0
At least in the past, there were many graphics cards designed to improve photoshop performance. I know of at least two companies that used to make chips designed to speed up photoshop tasks, Number 9 and 3DLabs. They were designed to improve the performance of specific tasks like gaussian blur, scrolling, zooming. Nowadays scrolling and zooming around an image is not a big deal, but back then (5-10 years ago) you would seriously have to wait for photoshop to redraw the image if you changed perspectives.

Back then, I actually upgraded to a card based on a Number 9 chip and found a huge improvement in photoshop, some tasks were honestly over 5x faster.

Btw, Number 9 no longer makes graphics chips, neither does Radius (a company that used 3DLabs chips to make cards designed for photoshop).
 

imgod2u

Senior member
Sep 16, 2000
993
0
0
Up until recently, GPU's were not capable of 32-bit FP precision. Most today still aren't, only the NVidia 6xxx series and above and none of ATI's GPU's (they do 24-bit FP, which I suppose you can do as well). Not to mention programmability of these GPU's has, again, only recently gotten to the point where you can have arbitrarily long loops and branching. I suspect that at least video editing products will take great usage of this programmability in the future. Photo editing may but, as others have pointed out, the main limitation seems to be the amount of memory, not the processing time.
 

kpb

Senior member
Oct 18, 2001
252
0
0
The ati x1000 series has 32-bit PF precision and support for long loops and branches.
 

egkenny

Member
Apr 16, 2005
144
0
0
Originally posted by: Matthias99
GPUs are plenty accurate when you tell them to be. The problem is that they're not built anything like general-purpose CPUs, so running 'normal' programs on them is impossible (plus the problems mentioned with them not having much RAM compared to a high-end system, and that transferring data back and forth may not be as fast as you would like).
That is why professionals use boards such the NVIDIA Quadro. Using them with certified drivers help make the results as precise as possible. Precision is more important than speed. Game players can put up with graphic glitches but professionals will not.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |