Legal
The views expressed in this blog are my own and do not necessarily reflect the views of Adobe Systems Incorporated.
Search
December 20, 2006
Is Photoshop CS3 a 64-bit app?
First, ask yourself:
- What is a "64-bit application"?
- What advantages does such an application offer?
- What are the disadvantages?
In talking to lots of customers, I find that most are unable to answer these questions. (There's nothing inherently wrong with that. As I've said, I myself am just a simple unfrozen caveman Web designer, and like most non-engineers I don't presume to grok the intricacies of complex software design.) Yet despite the lack of widespread understanding, "64 bit" is one of those buzzwords (a la "Cocoa" and many others) that sounds cool, eliciting a lot of "arewethereyet, arewethereyet??" that may or may not be warranted.
Photoshop co-architect Scott Byer has posted a lucid, readable overview of 64-bit computing & where Photoshop stands relative to this transition. Given a great number of factors, we elected not to make the change in this cycle. That said, Photoshop does take advantage of some aspects of 64-bit chips, and as Scott notes, "It's a when, not an if" we'll make the move. His info should help cut through some of the hype & set reasonable expectations about the future.
Comments
"It's a when, not an if"
Well, so we wait for it ~ lol
I follow the Cocoa vs Carbon argument, and while I understand that it's possible to write a great Carbon app, it is nevertheless true that the apps I use which are slick, smooth and polished and which feel like they belong on OS X all tend to be Cocoa, and the apps I use which feel like patched-together crap ported to OS X (cause they don't support cool OS X features and just look and feel "off") tend to be Carbon. There are one or two notable exceptions. Intaglio has a really good, OS Xy feel to it, but it does not appear to be Cocoa. So the technical realities aside, it is absolutely true that from a user perspective, Cocoa nearly always provides a nicer experience, and all software authors who write apps for the OS X platform owe it to their customers to learn and even promote cocoa. No more of this lowest-common-denominator cross-platform compromising BS. Give us a Photoshop tailored for our OS or get out of the way and let new software fill the void.
Incidentally, despite the new icon (which is nothing short of ass), the CS3 beta is actually beginning to feel more like an actual OS X app, and that's a good thing. Photoshop is now the only Adobe app I still use.
I wonder how you will "take advantage of some aspects of 64-bit chips" with a 32-bit application.
[You may find Scott's post interesting. PSCS2 and later can use upwards of 2GB of RAM (3.5 on OS X, 4 on XP64). And Scott talks about super cache products that can deliver performance on RAM-laden systems. --J.]
What is a "64-bit application"?
An application that takes advantage of the large memory address space offered by 64-bit processor architecture.
What advantages does such an application offer?
Access to larger amounts of memory for quick processing of data, better memory management and allocation.
What are the disadvantages?
Can't see any, its all good. The disadvantage would probably be more hardware related in which case legacy hardware devices do not have the appropriate device drivers to work under a 64-bit operating system. Certain 32-bit apps too will have issues such as those with 16 bit installers since 64-bit Windows for example does not have a 16 -bit sub system anymore.
[Did you read Scott's article? --J.]
:) Adobe will say like that
32 bit system is better than 64. So customers dont now anything about OS and Adobe will teach us about OS. If I needed to pay 1000 $ for software I have to now for what I give my money. On this way Adobe just play with us.
[I'm not sure what you're talking about. --J.]
Well the "official word" about 64-Bit for image processing reminds me strongly of a quote Bill Gates loves to deny: "640K ought to be enough for anybody."
For images larger than 1GB a 64-Bit mode is really crucial, otherwise the app just takes the slow train and uses the hard-disk cache for stuff that exceeds the 32-bit assigned cache.
I was thinking of going back to using Photoshop which I abandoned for the last 1.5 years for anything but adding text and saving JPEGs. But CS3 was a purified letdown on almost all points so far.
As a summary I'd say: Fire the Photoshop team all together. Double-task the After Effects team for a while and have them train ex-Apple employees.
[Clearly you have the full story. Clearly. --J.]
Okay I have a question, if this is coming are you planning on supporting GPU assisted rendering (even in 2D products) in the future?
[Yes. It's a bigger subject than I have time to tackle here, but there are a lot of interesting possibilities related to GPUs. --J.]
I probably am not the first person to ask this, but I'd like to see something more than the CPU get put to use..
The posting on Scott's blog for memory bandwidth not keeping up, seems to be misleading. The current technology now supports 4 independent memory channels (quad core technonlgy). Each of these channels can function at speed of 1066. This is almost 3 times the speed of ddr400, per channel.How is this a lack of memory bandwidth?
[Scott replies,
"Current Intel systems do not provide four channels to main memory that I can find - most still provide only a single channel, and some provide two. Currently shipping systems are testing out at about 8GB/s sustained throughput - significantly less than the potential processing throughput of a quad core system for most imaging operations, meaning that system memory bandwidth is still the limiting factor, and the data set expansion caused by the larger size of 64-bit pointers will directly affect performance.
"AMD's NUMA architecture does provide for a higher total theoretical bandwidth (~10GB/s on current top systems), but that requires very careful management of the locality of the memory to each processor, something that is very difficult to obtain in real-world non-benchmark processing situations.
"It's something we will keep an eye on." --J.]
Hey Scott,
Check out the Dell 490 or 690 workstations. They both provide quad channel memory design. I think these machines were released in June of 06. Here's a link http://enterprisenetworksandservers.com/monthly/art.php?2308
[Scott replies, "Interesting, thank for the pointer. I'm impressed by the theoretical maximum bandwidth, and that would certainly alleviate the extra memory bandwidth pressure from 64-bit pointers. I'm still trying to find actual benchmark numbers that back that up." --J.]
I'm curious as to how OS X 10.5 fits into all this. I realize this is an older article, written at a time when Leopard was still imaginary, however now that Apple is operating a large portion of its market in a 64-bit environment (which was largely hyped at announcement, and we have heard almost nothing about 64-bit apps now that it's out), and all new macs come with 64-bit processing capabilities. Considering Photoshop hasn't really tailored itself to utilize Apples major hardware benefits (GPU acceleration, etc.), I'm curious if this will be the same case with 64-bit computing... Will Adobe simply wait until Windows catches up to offer what Mac users already want?
[You might want to read this info from Ars Technica. And I don't think I'd characterize Windows as "catching up." Microsoft isn't requiring existing apps (things like Photoshop, Final Cut Pro) to rewrite large chunks of the app in a different framework. What *does* seem unfortunate about their strategy is that there are x32 and x64 versions of the OS, meaning that taking advantage of x64 requires users to obtain and install a new OS--a non-trivial effort. Apple, by contrast, is getting everyone onto their x64 platform without extra effort (maybe even without knowing it). --J.]
A 64 bit application does have a greater memory allocation space to play with, so it will inherently run faster on the same processor when it comes down to having to deallocate and reallocate operations in ram. That part is true, the advantage though, is in the OS architecture itself.
64-bit operating systems natively run 64-bit commands. Modern 64-bit operating systems have both the 32 and 64 bit apis loaded into them (though the 32 bit api behaves differently in this instance), so, no problem there, they just handle memory allocation a bit differently. A 64-bit app will run faster than a 32 bit one on a 64-bit system, there are several reasons listed for this:
1) The processor (as previously stated) understands 64-bit operations. That means a process is neccessary to convert 32 bit instructions to 64 bit from those applications so the processor understands them.
2) 32 bit applications will still require the use of 64-bit system features, such as print spoolers. This will require another process, per service, to convert instructions from that 32 bit app, to the 64 bit supporting services.
3) Also stated by others, it has a larger allocation space, so, it compiles data in a far more agile manner.
So, in summary, the 64bit applications are faster. The 32 bit applications are faster in a 32 bit environment. I'm personally in favour of moving everything to 64-bit, because it is a huge performance gain, and has been since I moved to solaris 10. The only thing that matters is how many flops you can do in a processor, because in the end it breaks down to processor code, and at that point, you just have to worry about managing the curve and making certain the compensating processes don't entirely negate any advantage the larger memory space grants you.
Sidenote:
Many of the latest enterprise applications are currently making an architectural change to enable using Direct X 10 (now a hardware specification as opposed to software) in order to use GPUs as extra cores. One piece of technology I have seriously enjoyed using in the past months is the Nvidia Tesla, which makes full use of it and cuts my maya rendertimes into 32nds when stacked with my sun workstations, though you can do the same thing with any DX10 graphics card and the proper instructions.