- Streaming production
- Streaming fundamentals
- Encoding your video
- Choosing production tools
- Distributing your video
- Video tutorials
- Peer review
CS4 and 64-bit Systems
So there I was, testing Adobe Creative Suite 4 (CS4)'s AVCHD compatibility. I created a simple project, about 4 minutes long, two picture-in-picture overlays with simple rotation and color correction. I had two eight-core systems: the Windows workstation, a 2.83GHz HP xw6600 running Windows XP (32-bit version) with 3GB of RAM, and a 3.2GHz Mac running OS X version 10.5.5 with 8GB of RAM. Rendering out to Blu-ray compatible MPEG-2 took 68 minutes on the Windows workstation, 11 minutes on the Mac.
Hmm. I expected maybe 15 percent differential due to processor speed, but 6X? I sent these facts to Adobe and asked for their thoughts. Here’s what I got back:
"Rendering AVCHD natively is very CPU- and memory-intensive, and often with memory-based tasks, you see a sharp drop off in performance when the system starts having to swap out memory to disk. This is why we recommend 64-bit systems for CS4. We have split up the application into multiple processes, which will allow you to use far more than the usual limit for 32-bit applications. Sounds like the 8GB of RAM on the Mac is allowing you to avoid the memory paging out to disk."
To be honest, that was the first time I had seen 64-bit in the same sentence as CS4, but maybe I just didn’t read the marketing material carefully enough. Whatever. Anyway, it’s been a while since I seriously considered 64-bit computing. As you’ll undoubtedly recall from my blog post at NAB 2008, Sony Media Software announced a 64-bit version of Vegas that it ultimately shipped in September 2008. However, I don’t use Vegas much, so it didn’t pique my interest, plus I never really noticed any performance lag while working in 32-bit Windows.
A quick visit to the Apple site confirmed that OS X was a 64-bit operating system, which really got me thinking about Adobe’s recommendation for a 64-bit system for CS4. I contacted HP, which contributed a loaner xw8600 workstation with eight 3.33GHz cores running a 64-bit version of Windows Vista Business with 16GB of RAM.
I could only run one test before the due date of this article, but it was quite illuminating. That is, in the same AVCHD test, the 64-bit xw8600 rendered in 8:58 (min:sec), an order of magnitude faster than the Windows 32-bit workstation. That got my attention.
So here’s the value proposition for this month. The first article is lecture: what 64-bit computing is, what you need to implement it, how CS4 works with it. This will give me time to run an exhaustive battery of tests that will reveal the types of projects and workflows that can really benefit from 64-bit computing, which hopefully will encourage my editors to renew this column for another year (it is December, after all). In two weeks, you get to read all about it.
OK, turn those cell phones off and sit up straight, the lecture is about to begin.
What is 64-bit Computing
here are multiple differences between 32-bit and 64-bit processors, but the most important in this application is the size of the memory that the processor can address. 32-bit processors can address 232 bytes, which translates to 4GB of memory. That’s why the maximum amount of RAM you’ll see on most 32-bit Windows systems is 4GB, though some of this is reserved for the operating system. In contrast, 64-bit processors can address 264 bytes, which translates to 16 exabytes of memory, though Windows Vista x64 is limited to 128GB of RAM.
To run in 64-bit mode, you need a 64-bit processor and a 64-bit operating system. The original x86-64 specification was designed by AMD, and adopted by Intel with its Core 2 Duo and later processors. Microsoft has long offered 64-bit versions of both XP and Vista, and Apple dipped its toe in the 64-bit waters with Tiger and jumped in with Leopard.
Note that 32-bit applications can run inside of a 64-bit operating system, but they still can only address a maximum of 4GB of memory. In contrast, a true 64-bit application can theoretically address the maximum amount of memory supported by the operating system.
Getting to 64-bit Windows
You can get to 64-bit Windows a couple of ways. First, you can upgrade your current system if it has a 64-bit processor. However, while 32-bit application programs run under 64-bit versions of Windows, you’ll also need 64-bit drivers for graphics cards, hard disks, DVD recorders, and other hardware devices; otherwise, you won’t be able to use them. In addition, if you can’t increase your RAM to at least 8GB of memory, you may not realize many of the benefits of 64-bit computing.
The other approach, of course, is to buy a new 64-bit system. Obviously, in this case, all the drivers will be 64-bit, and you’ll probably have the ability to add more RAM than you could with an older 32-bit system.
What up with CS4?
In a press release issued on Nov. 20, 2008, Adobe announced CS4 version 4.0.1 and listed the following as one of the key benefits:
"Faster performance and responsiveness, with full support for 64-bit computing platforms to accelerate compute-intensive postproduction tasks. Adobe Premiere Pro CS4 version 4.0.1 is architected to take advantage of the additional memory available in 64-bit systems."
I copied this section to an e-mail, added a “huh?” to the end, and emailed it to my favorite PR folks at Adobe (and their agency). Actually, to be fair, I did ask a pertinent question or two. Here’s how the Q&A went with Premiere Pro product manager Giles Baker.
Question: How does CS4 work differently on a 64-bit Windows system than on a 32-bit Windows System?
Answer: CS4 runs the same on 32- and 64-bit systems, but its new architecture means that the software is able to take advantage of increased memory on 64-bit systems. We do this by splitting up the applications into multiple separate executables. Even though each executable is 32-bit (maintaining compatibility with 32-bit systems), each executable can access up to 4GB of its own memory, making the total amount of memory that can be used far higher.
As an example, Premiere Pro on its own runs as four separate processes. Adobe Media Encoder runs a single process but calls additional processes depending on the source of the content to be encoded. When using After Effects compositions via Dynamic Link, a separate, headless After Effects process provides the frames from the After Effects compositions. Encore also uses a similar scheme to split up processes.
Do CS4 users need to download anything special to run on 64-bit Windows?
Customers do not need to download anything special, and it works the same on Mac and Windows.
What are the 64-bit related additions to version 4.0.1?
4.0.1 improves performance in many areas, particularly playback and rendering, and many of these improvements build on the architectural changes that we added in 4.0. The actual architecture is basically unchanged between 4.0 and 4.0.1.
What types of project will benefit from running in 64-bit Windows, and what types of performance improvements can we expect?
Consider the following workflow:
- After Effects in use for compositing
- After Effects compositions used in the Premiere Pro timeline via Dynamic Link
- Premiere Pro editing HD content
- AME encoding a Premiere Pro sequence in the background
- Encore burning a Blu-ray Disc using content imported via Dynamic Link from Premiere Pro.
This will create approximately 10 processes, each of which can use a separate 4GB chunk of memory. This means it’s possible to achieve much higher stability with complex projects and workflows.
In addition, performance improves: Customers spend less time switching between applications and waiting for memory to page back in from disk. And more memory is available for frame caching so that when content is played, it will be available in the cache longer before it gets swapped out for more recently played frames. This translates into better editing interactivity, particularly for detail work on high resolution content.
Obviously this is a fairly intense workflow, but we frequently talk to customers that want to do similar things. And even with the more straightforward case of encoding a Premiere Pro timeline we’re able to use a lot of memory compared to running on a 32-bit system. That really helps when we get into large frame sizes and complex projects.