64 bits are *magic*…

Er, aren’t they?  What’s the real story?

ZDNet’s George Ou suggests that the Photoshop team is deficient in not making Photoshop CS3 a 64-bit app:

x64 allows high performance computing tasks to run extremely fast and efficiently. The free Paint.NET image editing application, for example, is fully optimized for multi-core and x64, yet Adobe can’t get its act together and won’t even release an x64 edition of the upcoming Photoshop CS3… It’s just a crying shame for Adobe to lag behind, because Paint.NET has shown tremendous speed increases using x64 for filtering and layering effects on the order of 50 to 100 percent speed boosts. Adobe should have been supporting x64 two years ago and it won’t even do it next year.

Meanwhile, Paint.NET developer Rick Brewster commented on Photoshop architect Scott Byer’s post "Photoshop: 64 bits… when?", saying that they got speedups in certain routines, but still aren’t matching Photoshop’s

Yup the reason Gaussian Blur shows such a big win in Paint.NET is due
to its use of 64-bit math. Photoshop seems to have some secret sauce
that enables its implementation to be much faster regardless, so props
on that.


I’m not saying that 64-bit computing doesn’t offer some advantages; it does.  I am saying (and have been saying) that the story is a tad more complicated than "Adobe can’t get its act together."  I don’t like the idea that we’ll have to pursue a certain path and accept the consequences (breaking plug-ins, eating more RAM, etc.) just because it would look good on a spec sheet.  We’ll do the right thing because it’s the right thing, not because it’s buzzword-compliant. [Via]

0 thoughts on “64 bits are *magic*…

  1. It’s George Ou. Being silly is what he does best.
    [I don’t know George or his work. I do know that it’s very easy to throw around assertions about what is, in reality, quite a complex topic. And ultimately it doesn’t really matter what we say, or how we go about explaining matters: lots of people will just say “photoshop sux dood lolz.” Feh. –J.]

  2. For the plugin compatibility dealie, what about a daemon that hosts plugins for other archs (one daemon per arch) and uses shared memory and high speed IPC to transfer data to/from photoshop and the daemon?
    Especially since this is going to be a large problem for fat versions of CS3.

  3. It’s my understanding that Photoshop has never supported more than 4Gb of RAM, and this was a limit due to 32bit memory space. So what about that? I could sure use more RAM.
    [I’d encourage you to read Scott’s post. There are various ways to address RAM. Remember the old “RAM Disk” options from, oh, 10 years back? They offered a way to let you treat RAM as if it were part of your hard drive. Disk caching in modern OSes, as I understand it, allows apps to put virtual memory onto something that resembles a RAM disk–one that happens to be many times larger than the old ones.
    So, the upshot is that Photoshop may be able to take advantage of >4GB of RAM–not directly, but there may be little if any practical difference. –J.]

  4. I agree completely [with your response to Ou]. Comparing Photoshop to Paint.NET is a bit of a stretch. In terms of time-to-ship for 64-bit, Paint.NET had a huge advantage in a number of ways: (1) it has at least an order-of-magnitude fewer lines of code (currently ~130 KLOC), (2) the whole .NET thing makes bitness agnosticism a lot easier and it’s not like we’re using any hand-tuned assembly code, (3) because of 2, plugin compatibility is almost 100% taken care of. If you write a plugin on your 32-bit system, you’re almost guaranteed it’ll work on the 64-bit Paint.NET as well.
    “64-bit is just faster” is a myth anyway. Yes you have more registers to work with, but not all code has high register pressure. Instructions take more bytes to encode, which means your DLL’s and EXE’s are about 40% larger. This in turn requires more memory bandwidth in order to execute those instructions. This means you can’t execute as many instructions per second, but hopefully you’re executing fewer instructions (less stack register see-sawing because of more registers). Certain data structures also take up more memory, which means higher bandwidth requirements as well. In the end, breaking even in performance on a 64-bit build vs. the 32-bit build is a good target.
    The real killer benefits in 64-bit are (1) access to huge amounts of memory instead of paging to disk, (2) a MUCH relieved virtual addressing space*, and (3) 64-bit math is much much faster which benefits some compute-intensive tasks (hence the 300% perf boost in Paint.NET’s Gaussian Blur, and other awesome gains in our layer composition).
    * I don’t care if you have 1 GB of RAM: That allocation for 250 MB just won’t succeed unless you have 250 MB of *contiguous* virtual address space to spare in your process. Which is much more difficult to provide in common scenarios than you might think!
    [Thanks for the quick and thorough reply, Rick. –J.]

  5. So given everything else that has been stated here, is there any value in his claim that Photoshop would probably run faster on the 64bit version of Vista anyway? If this reasoning were true, would it likely be the same for the other Creative Suite applications?
    [I can’t speak for the other Suite apps, but some early testing here indicates that Vista 64 offers better disk caching than XP. The means that Photoshop can effectively address more than 4GB of RAM, putting its virtual memory into real memory. So, Scott’s advice to Windows power users is basically, “Get a Vista 64 box and cram it with as much memory as is practical/affordable.” –J.]
    I’m getting ready to invest in a new system that will primarily be running CS2/3 and related applications and am wondering if there are any real enhancements at this point that will justify the apparent headache I may be in for in terms of hardware support.

  6. you’ll always get the spectrum of responses to the magic work you do… it’s part of our nature. ; >
    stick to your guns though, because i know you and your team intimately wrestles with and prioritizes the list of objectives and features based on a fixed amount of time and energy. from what i have seen, this release will add some wonderful tools to streamline and enhance the creative (and analytic) process.
    keep up the great work!

  7. I thought this was already addressed already the first time it was brought up. I’ll have to agree that Adobe was wise not to utilize the 64 bit architecture for CS3. While I do hope for a 64 bit native Photoshop, I just don’t see that many people using Windows XP64 or Vista 64, and Leopard isn’t even out yet. Also the Adobe programmers have great algorithms for their common filters (including supporting multicores) so at this point they can rest a bit for now until 64 bit OSes saturate the market. I had hope that Microsoft would heavily promote Vista 64 (they did say that they would, but at the release, I didn’t see any evidence of that. Maybe next year…)
    At the very minimal, Photoshop CS2 can take advantage of the extra RAM above 4GB in Windows XP64 by using it as a scratch disk, which is not too bad. And you can use the PSB file format to write files larger than 4GB.

  8. john j00 r teh woo7. everybody shuld read yr blog. zomg
    But seriously, I’m really glad that you are blogging. This blog represents such a big and important step for a company like Adobe. Keep up the great work and I’m sure that at least some people will start to listen and learn.
    [Thanks, Joe! A little encouragement goes a long way. –J.]

  9. Personely I think Scotts Beyers [sic] post on why they didn’t compile CS3 as a 64 bit app rather specious and rather selfserving by Adobe.
    [How, specifically? Do you have any technical knowledge that could illuminate the discussion further? Or do you just… never mind. –J.]
    I remember the flap from the naysayers as to why we shouldn’t go to 32 bits from 16 bits. More and more users are going to 64 bits now that the dual and quad processors are available. There are those of us who need the 64bits NOW. Adobe should be a leader and not wait to be leapfroged by another company.
    [… –J.]

  10. You completely missed my point John.
    [I think I got your point, George; it’s you who missed mine. Your point is that 64-bit = right; mine is that it’s not that simple. See below. –J.]
    My point is that if group of volunteers can come up with a fully SMP multi-core x64 optimized image editor, what is Adobe doing ignoring x64?
    [Who said anything about ignoring it? *Choosing* not to ship CS3 as a 64-bit app (y’know, breaking plug-ins, eating more RAM, etc.–the things I don’t see you mention) doesn’t equal *ignoring* anything. That’s the crux of my beef with your post: you assume that one particular technical implementation (64-bit) must be the right one, and you conclude that any decisions that don’t agree with that assumption must be the result of sloth, ineptitude, or both. –J.]
    I would never suggest Paint.NET is a Photoshop replacement; they’re not even in the same league and they don’t serve the same market.
    [I didn’t take you to say otherwise. –J.]
    All I’m saying is that if college students can do it, why can’t the pros?
    [When did “can” come to equal “should”? Now, once again I’ll note that this doesn’t equal me saying (or Adobe saying, which is different) that Photoshop should never be made available as a 64-bit application. I’m saying that if and when that’s the right thing to do, we’ll do it. But I don’t like getting painted into a corner because people latch onto a particular idea and draw conclusions that may not be warranted. –J.]
    People who use Photoshop have some of the most powerful workstations in the world; don’t they deserve x64 optimized code for the kind of money they’re paying for Photoshop?
    [Once again you’re making the point that 64-bit = right, therefore 32-bit = deficient & unworthy.
    Now, do people who pay good money for Photoshop deserve the absolute best performance that can be wrung out of pro hardware? Damn right they do. Is making Photoshop a 64-bit app the only, or the best, way to get there? Well, it’s hardly the black and white case you lead your readers to believe, and that’s what bugs me. Maybe you were pressed for space, but I didn’t see a lot of nuance or benefit of the doubt. (I also don’t remember you asking for any clarification or perspective from the team before posting. Maybe in the future that could help.) –J.]
    Now I read that response on Adobe’s website and I’m surprised they dedicated such a long blog in response.
    [Other than four sentences plus quotations, I devoted exactly one paragraph to the response. Scott devoted quite a bit more time to explaining the situation & engaging in a discussion with commenters in hopes of shedding light on the situation, but that predates your post. –J.]
    But it’s funny that even you admit there are improvements in going to x64; just that they’re not ready to do so yet.
    [George, it’s not a matter of “admitting” anything. I simply made the point that there isn’t a magic bullet here. –J.]
    I also don’t think the ability to address more memory is the ONLY benefit to going x64 as you seem to be suggesting. You have wider 64 bit CPU registers and you have double the number of CPU registers. Having more CPU registers available to you even when you’re using 32 bit numbers is STILL a major advantage because CPU registers are the closest thing to the processor. CPU registers are closer than cache and much closer than memory. The bottom line is that Photoshop could be a much faster product even if you’re only using 2 GBs of RAM.
    [Did you read what Scott wrote?

    Yes, the x64 instruction set has some more registers available, and that helps in limited circumstances, but the processing throughput of a memory bandwidth bound application is pretty much not going to benefit from being a 64-bit application. In fact, it gets worse in many cases because the internal data structures the application is dealing with get bigger (since many data structures contain pointers, and pointers in a 64-bit application are twice as big as in a 32-bit application). Memory bandwidth has not kept up with processor speeds, and has become a precious resource.

    I’m not a computer scientist, which is why I defer to guys who are. In any case, these are the points I feel more comfortable letting Scott, Russell, et al address. Maybe there’s more info we can post that would clarify things further. –J.]
    While I appreciate the fact that it’s a lot more complex to transition Photoshop from x86 to x64, Adobe’s time would be much better spent on working on the x64 transition than worrying about any comparisons with Paint.NET.
    [See above. –J.]

  11. It sounds like there are some technical difficulties moving to 64-bit, but it also sounds like the benefits are rather obvious. Nobody said “64 bits are *magic*”. 64-bit systems have wider registers, very useful for a number of image processing algorithms, more OF those registers (x86 architecture is famous for requiring a lot of register swapping because of its lack of GPRs), and more importantly, allows more than 4GB of RAM per process.
    Does Adobe seriously think that the ability to use more than 4GB of RAM in a professional level media editing application is merely “buzzword-compliant”, then…
    Adobe is not a stupid company. It seems fairly reasonable to believe that Photoshop is difficult to move into the 64-bit realm, possibly because it assumes 32-bit architecture, or that the size of a pointer is the size of an int, in too many places. This happened with OpenOffice as well (though OpenOffice, unlike Photoshop, is unlikely to benefit much from the move to 64-bit). Thus, this blog entry is likely damage control. CS4 will be released 64-bit and there will be all manner of articles describing how beneficial it is, and how important it is that everyone upgrade from CS3. The usual.

  12. As Scott said, 64 bit is not a matter of if but when. I believe the main benefit will not be 64bit math nor register increase, as Photoshop seems to have one very optimized code, but memory. Sure the OS can cache beyond 4GB but its VM will never e as fast as Photoshop’s, as its algorithms must be a one size fits all kind.
    I think a nice side effect of this transition will be the display engine. QuickDraw is not 64bit so Adobe will finally have to drop it in place of either Quartz or, more probably as it is open source and cross platform, OpenGL. I imagine nice things that can come out of this, like the “fluid” zoom, transparency in the paint tools instead of a dotted line etc.

  13. I don’t mind Adobe not releasing an 64-bit version of CS3 very much, but as an end-user, I’m curious as to how well CS3 will run on an x64 version of XP/Vista.
    I’ve been meaning to take advantage of my Conroe with x64 Vista, but should performance decrease, it’d be just plain dumb.

  14. As a paying customer of Photoshop (for quite a few licenses actually), I feel I should say that I much rather prefer Adobe working on improvements that offer *real* benefits to its customers than spend what I can only assume is a considerable ammount of time (=money) to rewrite PS to 64 bit.
    Seriously, people posting in favour of a move to 64 bit seems to treat this like a “they might as well, even if it’ll take them all evening”-issue. Sounds to me like we’re talking serious development time, and that means serious cost. And who do you think picks up the bill? I’ll take the new features for now and I bet we’ll see a 64 bit version in due time. It’s not like you can’t run it on a 64 bit OS anyway.

  15. To A Wong:
    Windows XP64 and Vista 64 sometimes show subtle speed improvements for 32 bit applications. So Photoshop CS3 should run fine in either OSes, just like CS2 does. And CS3 is certified for Vista.

  16. Hello. Great post and great blog. I´ve noticed at adobe.com that finally Studio CS3 is not certified for Vista 64. I´m horrized, I´ve just bought two Vista Ultimate 64 for my design studio!!! What does it mean? What software can´t execute correctly over Vista 64? Thanks to all!
    [I’m not aware of any incompatibilities in Vista64–certainly not in Photoshop. I’m guessing it’s more a matter of not having enough cycles to certify all the apps on the 64-bit OS. I’ll check, though. –J.]

  17. I’ve been watching Scott’s blog and this and I really have to say what I think as a developer.
    What is with all that excuses folks?
    Breaking plugin compatibility?
    Big deal. Those who need ancient plugins to work can continue using 32-bit version of Photoshop. There is really no need for backward compatibility and awkward shared memory + IPC here when they can run both 32-bit and 64-bit photoshop.exe at the same time under 64-bit Windows.
    By the way, how do you think to stimulate developers to write 64-bit plugins if you don’t provide 64-bit host? It is sort of a chicken and egg problem you know.
    Eating more memory? Come on!
    Photoshop CS3 folder has 298MB in it — if all that files were executable, if all of them were required to stay in memory, and if you were 100% right about 40% increase in the executable size, that would still mean only 417MB of RAM and we are talking here about people who want to use 8GB in their machines which would currently cost them ~440€ (Corsair DDR2-800).
    In my opinion those excuses are lame. George Ou has a point which you didn’t understand. Your company is full of cash but it still doesn’t want to invest in future which isn’t even future anymore, it is yesterday.
    If you disagree, then answer me why Photoshop CS3 when using 16 bits per color channel still retains only 15? Surely 16-bit integer math isn’t an issue for an industry leader like Adobe?

  18. I recently switched my system from Vista Ultimate 32-bit to the 64-bit so that my system could use all 8GB of installed memory, and it has had no effect whatsoever on the Adobe CS3 applications that I use. They’re still as rock-solid and error-free as ever.
    I couldn’t tell you if there’s been a performance boost – the applications already ran so smoothly that I wouldn’t be able to notice it anyway. I have noticed faster HDD read/write speeds, but I think that’s accounted for by the OS itself and not the Adobe apps.
    A lot of people want to get those extra 5GB of RAM working, but are concerned about hardware drivers. Well, I assure that it’s not such an issue. If your mobo has a newer Intel or nVidia chipset, your video board has an nVidia GeForce 8 series chipset, and your audio board is from Creative labs, then you’re in the clear. Also when I installed the 64-bit system, I inserted the exact same floppy as before to install the RAID controller, and it worked perfectly. If you’re a creative professional and want that boost that the extra RAM will give you, I highly encourage you to go for it! iTunes doesn’t work with Vista 64-bit, but that’s what the iPod on the desk is for. 🙂

  19. I meant to ask this when I left my previous comment – do the CS3 apps take full advantage of quad-core CPUs? Specifically the Core 2 Extreme series?

  20. I have two problems with your theme about ‘doing it right.’ The first is that it won’t ever be done, let alone right. Is the idea that the 64 bit flash player will be the end-all, never required any more software writing? Is the plan to have the release 100% error free? Neither/nor, I assume. I appreciate wanting to release a quality product, but call it an alpha if you want, just put something out that is usable. It will have bugs and patches and all, as is the case with every other product. But that would be preferable to a home hack job. Second, most windows users aren’t running 64 bit OSs. The cries are coming from the linux users, who generally follow the MO of testing software by releasing it, and not just as open-source. They believe, rightly, IMO, that thousands of real users, amateurs though they may be, would improve development efficiency far beyond what can be done by isolated offices of developers. Effective error reporting of a test product would be a boon to Adobe’s efforts. So, I would say that your claim that withholding these products is actually the responsible and reasonable thing to do…is utterly wrong.

  21. Hmm yes for the price of this software as a pro app seems odd that when I throw it on my quad core q6600 with 8 gb of ram and 64-bit vista that coloring an image with the color replacment tool to cursor skips jumps and lags so it near unusable. I look and there are my 3 cores idle and an extra 5GB of ram untouched as one cpu core is choking at 100%. I read adobe is set to add more GPU support in the future? You can have all the feature fluff and gpu acceleration support if it doesen’t fix this who cares ? an app costing this much money (a professional premium right because lets face it a raster image manipulation app isn’t worth this kind of money in and of it self) should run on a high end workstation without lagging so bad you can’t color an 8.5 x 11 90pi res image. Pitafull

  22. Help, I have read through all the above discussions but as a simple user of CS2 all I want to know is if I got a new computer running Vista 64 bit will my copy of photoshop still work. Please spare a moment of your time to assist or point me in the right direction to find the answer.
    [I would expect CS2 to keep working on Vista64. I haven’t heard anything to the contrary, though you may want to ask/search on the Photoshop Windows user-to-user forum. –J.]

Leave a Reply

Your email address will not be published. Required fields are marked *