{"id":90,"date":"2010-06-03T21:44:13","date_gmt":"2010-06-04T04:44:13","guid":{"rendered":"http:\/\/www.hd4pc.com\/techblog\/?p=90"},"modified":"2010-12-08T14:24:28","modified_gmt":"2010-12-08T21:24:28","slug":"cs5-with-cuda","status":"publish","type":"post","link":"https:\/\/www.hd4pc.com\/techblog\/2010\/06\/03\/cs5-with-cuda\/","title":{"rendered":"Premiere Pro CS5 with NVidia CUDA"},"content":{"rendered":"<p style=\"text-align: left;\">While all of the <a href=\"http:\/\/www.adobe.com\/products\/creativesuite\/compare\/\" target=\"_blank\">Adobe applications<\/a> have been updated in <a href=\"http:\/\/www.adobe.com\/products\/creativesuite\/?promoid=GWYLN\" target=\"_blank\">CS5<\/a>, clearly <a href=\"http:\/\/www.adobe.com\/products\/premiere\/whatsnew\/?promoid=FDTFD\" target=\"_blank\">Premiere Pro <\/a>is the centerpiece of this release.\u00c2\u00a0 Adobe has been touting the <a href=\"http:\/\/www.adobe.com\/products\/premiere\/performance\/\" target=\"_blank\">Mercury Playback Engine <\/a>for months, with new 64bit code, and additional <a href=\"http:\/\/www.nvidia.com\/object\/adobe_PremiereproCS5.html\" target=\"_blank\">GPU acceleration <\/a>through <a href=\"http:\/\/www.nvidia.com\/page\/home.html\" target=\"_blank\">NVidia&#8217;s<\/a> <a href=\"http:\/\/en.wikipedia.org\/wiki\/CUDA\" target=\"_blank\">CUDA<\/a> technology.\u00c2\u00a0 This acceleration allows highly compressed formats like <a href=\"http:\/\/en.wikipedia.org\/wiki\/AVCHD\" target=\"_blank\">AVCHD<\/a> and <a href=\"http:\/\/en.wikipedia.org\/wiki\/H264\" target=\"_blank\">H.264 <\/a>to be played back seamlessly in the timeline, and intercut with other formats without transcoding intermediate files or rendering previews.\u00c2\u00a0 <a href=\"http:\/\/www.tkqlhce.com\/click-4107801-10674112?url=http%3A%2F%2Fstore.digitalriver.com%2Fstore%3FAction%3DDisplayProductDetailsPage%26Locale%3Den_US%26SiteID%3Dadbevlus%26productID%3D182915000&amp;cjsku=Premiere+Pro+CS5+-+License\" target=\"_blank\">Premiere Pro<\/a> now supports native editing of a stunning number of\u00c2\u00a0acquisition formats, including <a href=\"http:\/\/en.wikipedia.org\/wiki\/HDV\" target=\"_blank\">HDV<\/a>, AVCHD, <a href=\"http:\/\/en.wikipedia.org\/wiki\/XDCAM\" target=\"_blank\">XDCam-HD and XDCam-EX<\/a>, DVCProHD and AVC-Intra files from <a href=\"http:\/\/en.wikipedia.org\/wiki\/P2_(storage_media)\" target=\"_blank\">P2 Cards<\/a>, <a href=\"http:\/\/labs.adobe.com\/downloads\/red3importer.html\" target=\"_blank\">Red R3D <\/a>files, and my favorite: Canon H.264 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Digital_single-lens_reflex_camera#High_Definition_DSLRs_.28HDSLRs.29\" target=\"_blank\">DSLR<\/a> footage.\u00c2\u00a0 It can also edit DNxHD and ProRes footage, for greater compatibility with <a href=\"http:\/\/www.bhphotovideo.com\/c\/product\/706140-REG\/Avid_7500_30124_01_Media_Composer_5_Production.html\/BI\/6727\/KBID\/7302\" target=\"_blank\">Avid<\/a> and <a href=\"http:\/\/www.bhphotovideo.com\/c\/product\/639275-REG\/Apple_MB642Z_A.html\/BI\/6727\/KBID\/7302\" target=\"_blank\">Final Cut Pro<\/a>.\u00c2\u00a0 DPX sequences are another significant addition to the formats natively supported, for both import and export.\u00c2\u00a0 This greatly enhances Premiere Pro&#8217;s usefulness as a DI conform tool, especially when combined with native support for so many other source formats.<br \/>\n<!--more--><br \/>\nThe greater memory footprint made available by 64bit coding allows larger projects to be loaded without having to swap data into virtual memory, which causes a major performance hit.\u00c2\u00a0 This allows longer complex sequences, and more importantly: greater numbers of source clips to be imported without any noticeable decrease in system performance.\u00c2\u00a0 The one point where large projects still incur a penalty is during load time, since regardless of how much RAM you have, more data has to be loaded into memory.\u00c2\u00a0 Even my projects with over 500 clips usually load within a minute, which is a vast improvement over previous versions.\u00c2\u00a0 Loading media in the background once the UI is available to the user is a feature that has been available in <a href=\"http:\/\/en.wikipedia.org\/wiki\/Premiere_Pro\" target=\"_blank\">Premiere<\/a> ever since the 4.2 update.\u00c2\u00a0 While it is nice to see your sequence on screen during that time, I wouldn&#8217;t recommend trying to do any real work until all of the media is loaded, because you will usually see a significant decrease in both performance and stability while the system is busy linking to all of your media files.\u00c2\u00a0 Certain files load faster than others during this process, so load times may vary depending on the format of your source footage, regardless of\u00c2\u00a0your project&#8217;s\u00c2\u00a0complexity.\u00c2\u00a0 Specifically I have noticed that DSLR MOV files take longer to load when opening a project.<\/p>\n<p>Speaking of DSLR files, Adobe has totally reinvented the way they are handled in CS5.\u00c2\u00a0 Most applications, including the CS3 and CS4 versions of both Premiere and After Effects, use <a href=\"http:\/\/en.wikipedia.org\/wiki\/Quicktime\" target=\"_blank\">QuickTime<\/a> importers to access the content of <a href=\"http:\/\/www.bhphotovideo.com\/c\/search?ci=6222&amp;Ns=p_PRICE_2%7C1&amp;N=4288586280+4291570227+4291070769&amp;BI=6727&amp;KBID=7302\" target=\"_blank\">Canon DSLR <\/a>files.\u00c2\u00a0 This makes sense, since they are stored in an MOV wrapper, but leads to two issues.\u00c2\u00a0 One is that is specific to Adobe is that on a PC, QuickTime files go through a few extra steps before they are accessed by the application, so there is a performance hit, and with lots of files accessed at once, there are usually stability issues as well.\u00c2\u00a0 The other issue effects all applications that use QuickTime to access DSLR files, and that is that ever since <a href=\"http:\/\/prolost.com\/blog\/?currentPage=17\" target=\"_blank\">QuickTime 7.6.2<\/a> was released, Canon DSLR files have been decoded in a much more flat and washed out color space than they were designed to be viewed in.\u00c2\u00a0 Prior to version 7.6.2, they were decoded in a way that\u00c2\u00a0<a href=\"http:\/\/cineform.blogspot.com\/2009\/01\/full-dynamic-range-video-from-canon-5d.html\" target=\"_blank\">clipped<\/a>\u00c2\u00a0the highlights\u00c2\u00a0and shadows, which was\u00c2\u00a0even worse.\u00c2\u00a0 In CS5, Adobe worked with <a href=\"http:\/\/www.mainconcept.com\/\" target=\"_blank\">Mainconcept<\/a> to create an importer that reads the DSLR source files without involving QuickTime at all.\u00c2\u00a0 This alleviates both the performance hit on PC systems, and the color space issues of QuickTime&#8217;s default decoding.\u00c2\u00a0 A lot of work was put into getting the decode matrix and color space exactly correct based on the processing that Canon&#8217;s hardware does to the file in the camera.\u00c2\u00a0 This should allow CS5 to decode the files more correctly than any other application that I am aware of, and give more options for color processing at later stages in the workflow pipeline, since more of the original color data is preserved.<\/p>\n<p>The Mercury playback engine has a significant impact on the user experience, with most frequently used tools being available in real time.\u00c2\u00a0 Supposedly most of the decode and playback improvements are based on the new code written for native <a href=\"http:\/\/en.wikipedia.org\/wiki\/64-bit\" target=\"_blank\">64bit<\/a> execution, with the <a href=\"http:\/\/en.wikipedia.org\/wiki\/GPU#GPU_accelerated_video_decoding\" target=\"_blank\">GPU offload <\/a>limited to effects processing.\u00c2\u00a0 While many editors don&#8217;t use very many discrete effects in their work, there are some intrinsic playback functions like scaling frame sizes and adapting frame rates that are considered effects and offloaded to the GPU.\u00c2\u00a0 This allows content of different frame rates and resolutions to be intercut seamlessly on the timeline, and it is truly seamless.<\/p>\n<p>I have occasionally found myself editing in the wrong sequence frame rate without even noticing it, since the software makes the conversion on the fly.\u00c2\u00a0 Even more frequently I have found a clip shot in the wrong frame rate on a tapeless camera almost escaping detection because gone are the red render bars and playback glitches that used to stand out.\u00c2\u00a0 This allows editors to import media from many different sources without prerendering everything to a normalized format.\u00c2\u00a0 I used to spend about a quarter of my time at work converting strange source footage into 1080p24 intermediate files, because any footage not matching the timeline format would cause previous versions of Premiere to glitch during playback and occasionally crash.\u00c2\u00a0 Now I would recommend carefully converting any footage used in a final piece to the correct format for maximum control, but this step can now be put off until the online stage, since it is no longer required for playback and stability.\u00c2\u00a0 Since 90% of footage usually ends up on the cutting room floor, putting off these time consuming conversions until after the creative edit is finished, will drastically reduce the amount of footage you end up needing to process.<\/p>\n<p>So this clear increase in performance leads to the question of: how far can you push it?\u00c2\u00a0 A few months back I processed an <a href=\"http:\/\/en.wikipedia.org\/wiki\/Image_noise\" target=\"_blank\">ISO noise <\/a>test in <a href=\"http:\/\/en.wikipedia.org\/wiki\/Adobe_After_Effects\" target=\"_blank\">After Effects CS4<\/a> for <a href=\"http:\/\/www.hurlbutvisuals.com\/blog\" target=\"_blank\">Shane Hurlbut<\/a>.\u00c2\u00a0 We were comparing the image noise produced at twelve different ISO levels on the Canon 5D, and the project involved twelve streams of video with masks, levels, and position adjustments for a tiled view.\u00c2\u00a0 I was getting about two frames per second when rendering previews, which seemed reasonable considering the amount of processing involved.\u00c2\u00a0 When I saw the list of GPU accelerated effects in Premiere Pro CS5, and was asked to create torture test for Adobe to show off at <a href=\"http:\/\/www.nabshow.com\/2010\/index.asp\" target=\"_blank\">NAB<\/a>, this jumped to mind.\u00c2\u00a0 I recreated the entire project, using twelve layers of native DSLR footage, each layer having a motion effect and a 4-point garbage matte to create the tiling, and a color correction applied to exaggerate the noise to a clearly viewable level.\u00c2\u00a0 The same basic setup that was getting 2fps in AE CS4 played back in real-time in Premiere Pro CS5.\u00c2\u00a0 (Dual <a href=\"http:\/\/processorfinder.intel.com\/details.aspx?sSpec=SLAED\" target=\"_blank\">Xeon X5365<\/a> CPUs and 16GB RAM with a <a href=\"http:\/\/www.nvidia.com\/object\/product_quadro_fx_4800_us.html\" target=\"_blank\">QuadroFX 4800<\/a>) Needless to say I was quite impressed with the outcome, since it was deliberately beyond Adobe&#8217;s ten-layer playback claim, and\u00c2\u00a0using a complex format to decode and playback.\u00c2\u00a0 Clearly GPU acceleration can have a dramatic impact on application performance.<\/p>\n<p>There has been much discussion and debate on tech forums and blogs about the specifics of Premiere Pro&#8217;s hardware support for CUDA acceleration.\u00c2\u00a0 Adobe has severely restricted the number of cards for which they officially support CUDA based GPU acceleration, to maintain control over the hardware environments upon which their accelerated code is tested, supposedly for stability reasons.\u00c2\u00a0 The official list is limited to <a href=\"http:\/\/www.nvidia.com\/page\/qfx_uhe.html\" target=\"_blank\">QuadroFX<\/a> 3800, 4800, and 5800, as well of the discontinued <a href=\"http:\/\/www.nvidia.com\/object\/product_geforce_gtx_285_us.html\" target=\"_blank\">GeForce 285 GTX<\/a>, with certain limitations, for those on a lower budget.\u00c2\u00a0 There are currently no officially supported mobile GPUs, even though notebook CPUs are usually more in need of a performance boost than desktop chips.\u00c2\u00a0 This may be due to the fact that even the newest mobile <a href=\"http:\/\/www.nvidia.com\/object\/product_quadro_fx_3800_m_us.html\" target=\"_blank\">QuadroFX 3800M <\/a>is still based on the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Nvidia_Quadro#Mobile_applications\" target=\"_blank\">G92<\/a> core from the GeForce 8000 series, but I don&#8217;t like seeing software artificially limited in regards to performance or hardware support, and this is an example of both.\u00c2\u00a0 Don&#8217;t confuse legitimate limitations and artificial limitations, since clearly a powerful GPU is necessary for optimal performance in CS5, but there are cards of equal capability that are specifically excluded from the list, supposedly for stability reasons.\u00c2\u00a0 Luckily Adobe has left an option for knowledgeable users to override some of those artificial limitations, and I anticipate seeing them being dropped completely in a future update.\u00c2\u00a0\u00c2\u00a0I anticipate\u00c2\u00a0a more reasonable requirement of any NVidia card supporting <a href=\"http:\/\/en.wikipedia.org\/wiki\/Comparison_of_Nvidia_graphics_processing_units#Compute_capability_table\" target=\"_blank\">CUDA 1.1 or 1.3<\/a>, with at least 785MB of video memory, at some point in the future.<\/p>\n<p>While Premiere Pro CS5 is not perfect, it is a complete reversal from the previous fiasco that was CS4.\u00c2\u00a0 It clearly demonstrates the possibilities provided by GPU acceleration, resting solidly on 64bit code with proper multithreaded programming, it scales to take advantage of whatever hardware is made available for it.\u00c2\u00a0 Since Adobe has made a practice of introducing significant improvements in incremental dot releases, I am looking forward to seeing how else they refine it in the coming months.<\/p>\n<p>FTC Disclosure: I have been on Adobe&#8217;s beta team for many years, and Adobe has provided me a copy of CS5 for this review.\u00c2\u00a0 NVidia has provided me with graphics hardware in the past, which I utilized in this review.\u00c2\u00a0 My only admitted personal bias is my preference of Windows over OSX, because I like full control over every aspect of my computing experience.\u00c2\u00a0 If for some reason that bothers anyone, there are plenty of other sources of information on the internet, but I try to provide unique insight on how each of these tools fits into the larger post-production picture.\u00c2\u00a0 Any relevant critique or response is welcomed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>While all of the Adobe applications have been updated in CS5, clearly Premiere Pro is the centerpiece of this release.\u00c2\u00a0 Adobe has been touting the Mercury Playback Engine for months, with new 64bit code, and additional GPU acceleration through NVidia&#8217;s CUDA technology.\u00c2\u00a0 This acceleration allows highly compressed formats like AVCHD and H.264 to be played [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,9],"tags":[43,40,44,24,45,37,7],"_links":{"self":[{"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/posts\/90"}],"collection":[{"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/comments?post=90"}],"version-history":[{"count":13,"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/posts\/90\/revisions\/161"}],"wp:attachment":[{"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hd4pc.com\/techblog\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}