Copy link to clipboard
Copied
Introduction:
Hello, I ran some tests today to see if RAM speed really made any difference when it comes to After Effects. In short, my finding are that, no, it doesn't make any difference. At least not for the type of project I tested it with. Below are my findings, but first, my system specs.
System Specs:
Water Cooled Intel Core i7-3930K (4.3GHz OC)
120GB Sata II SSD for OS and Programs
256GB Sata III SSD for Project Files and After Effects Disk Cache
16GB (4x4GB) Corsair Vengeance RAM (Stock timings are 1600MHz @ 8,8,8,24)
1GB Nvidia GTX 460 SE
Test Project:
The project consisted of 6 AVCHD videos played simultaneously and some very basic effects like corner pinning and cc wire removal. The After Effects Memory and Multiprocessing settings were as follows. 5GB reserved for other programs, 2 CPUs reserved for other programs, 2GB per core.
Results:
1333MHz, 12, 12, 12, 24 @ 1.57V
Render Time: 3:22
1333MHz, 7, 7, 7, 24 @ 1.6V
Render Time: 3:17
1866MHz 9, 9, 9, 24, @ 1.57V
Render Timer 3:14
1866MHz 12, 12, 12, 24 @ 1.57V
Render Time: 3:19
2133, 12, 12, 12, 24 @ 1.6V
Render Time: 3:15
Conclusion:
So, from my testing I found that RAM stpeed really doesn't play a large role in this situation. However, after thinking about this for a bit I realized that this is probably due to the fact that my RAM needs to load data from and dump data to my SSD in this project. Even though my SSD is capable of over 500MB/s sustained R/W it's still not even remotely close to how fast any of those RAM speeds were.
So, my question to you all then is this, can you recommend a type of project with effects that will primarily use the RAM without having to access my SSDs? While my tests show a good "real world" example of the effects of RAM speed they do not show the full picture. With your recommendations I will create a new project that will be a better gauge of the affects of RAM speed and add those findings to this thread.
Yeah... just a little space to fit that... you could literally fit 8+ of my towers inside yours and still have room.
Anyway, I did some more tests and found out some more interesting things about finding the best RAM speed.
Test Project
Just a spinning rubix cube with 6 iterations of keylight to key out all the colors. The AE Memory and Multiprocessing settings were as follows: 5GB reserved for other programs, 2 CPUs reserved for other programs, 2GB per core. See original post for system specs
...Copy link to clipboard
Copied
You would have to use an extremely memory hungry effect like Keylight or use extremely deep nesting with about 20 nested comps inside one another to see any delay in passing the buffers (not speaking about actually calculating them), but otherwise you won't see much influence. Nothing personal, but you are obsessing over something that is completely irrelevant for 99% of all users, including highend users. On an average project you just won't notice those 2 seconds and in most cases long before you will run into file I/O bottlenecks. Very few users will be able to have all their files on SSDs at all and most will not use highend models, but rather what they can afford. It's a moot point. Also without more detailed procedures you don't know how other processes on your system affect memory bandwidth. A single random scan of all active processes by your virus scanner could skew the result....
Mylenium
Copy link to clipboard
Copied
Mylenium wrote:
You would have to use an extremely memory hungry effect like Keylight or use extremely deep nesting with about 20 nested comps inside one another to see any delay in passing the buffers (not speaking about actually calculating them), but otherwise you won't see much influence. Nothing personal, but you are obsessing over something that is completely irrelevant for 99% of all users, including highend users....
Thanks Mylenium, this is exactly what I've been looking for. I've searched for a while to get a straight answer on WHY RAM speed didn't matter. I've seen many posts where people say, "It doesn't make that much of a difference," but no one explained why. Now I see that the reason is simply because it is very rare to have a project where even "slow" RAM is the bottleneck due to frequently accessing the hard drive.
However, that being said, I have recently finished a project that has 8 iterations of Keylight amongst mamy other effects in a project that has nearly 20 nested comps (maybe 18ish) where the deepest nest is I think 4 layers deep. The rest are 1 to 3 layers deep. I'm going to rerun some of these tests with this project to see if even this is enough to see a difference in RAM speeds.
Before I run these tests though I do have another question. I have some temporal effects like Rotobrush in this project. Should I turn those layers off before running these tests or would that not have an affect on these test?
As a preface to these tests I would like to reiterate your point that it is extremely rare that someone would have a project like this. This is definitely a 1 in 100 project for me and like you said, this won't apply to 99% of users. I would still like to follow through on these tests for that 1% though.
Copy link to clipboard
Copied
Alright, so I ran some more tests.
Test Project:
This project consisted of three 1080i AVCHD videos with three iterations of Keylight and a two layers with Color Finesse color correction applied. The After Effects Memory and Multiprocessing settings were as follows. 5GB reserved for other programs, 2 CPUs reserved for other programs, 2GB per core. See original post above for system specs. Note: I only tested the slowest and fastest RAM speeds because the render time difference was low enough that I didn't see it necessary to test the other timings.
Results:
1333 12, 12, 12, 24, @ 1.57v
Time: 5:45
2133 12, 12, 12, 24, 1.6v
Time: 5:30
Conclusion:
This shows a slight difference compared to the last results. Here, there is a 4.5% decrease in render time when jumping from 1333MHz to 2133MHz. To give a better idea of how this affects overall performance let's look at what the render time difference would be for a similar project that takes 2 hours to render using 1333MHz RAM with the timings above. If you were to swap that RAM out with 2133MHz RAM with the same timings your new render time would be 1 hour and 55 minutes. Only a 5 minute savings.
So there you have it. RAM speed and timings really don't matter when it comes to After Effects. So if you are in the market for RAM to use explicitly with After Effects save your self some money and don't bother getting the RAM at 2133MHz and higher. 1600MHz will suit you just fine. Take that money and invest it elsewhere.
However, if you are going to be using the RAM for more than just After Effects like gaming or the like, then you'll have to do some more research to see what the benefits are for other programs/games/etc.
I hope this helps someone!
Copy link to clipboard
Copied
Good stuff Eric. Much appreciate the time you took for the tests and for detailing it for us. My take on it is this....
Your tests clearly show that increasing the frequency of your RAM....or decreasing the timings for your RAM....will have a positive impact on your AE performance. Small....yes. But a positive impact none the less. So....since most RAM will easily overclock beyond the factory XMP.....why not do it? If someone is buying memory that is rated for faster specs that is much more costly....then maybe it doesn't make sense to do. But you might as well push your curent memory configuration as far as it can go.
I'm still tweaking final settings in my build....but I have an X79 board that has 8 memory slots. The memory I have is 8x 8GB sticks rated at 1866 9,9,9,27. What I have found, is that I can run 4 of them (32gb) at 2133 10,11,10,30......or I can run 8 of them at 1600 7,7,7, 24. So, I have to choose bewteen 32gb at fast frequencies and slower timings.....or 64gb at slower frequencies but better timings. At least for now. I'm still tweaking.
My take away from your testing is that I may get more benefit out of the 64gb setup. Again....good stuff.
Copy link to clipboard
Copied
cpachris_1969 wrote:
Your tests clearly show that increasing the frequency of your RAM....or decreasing the timings for your RAM....will have a positive impact on your AE performance. Small....yes. But a positive impact none the less. So....since most RAM will easily overclock beyond the factory XMP.....why not do it? If someone is buying memory that is rated for faster specs that is much more costly....then maybe it doesn't make sense to do. But you might as well push your curent memory configuration as far as it can go.
I'm glad this was helpful for you. And I agree entirely that you should run your RAM as fast as possible (while remaining stable and not using ridiculously high voltages of coure ) because even though the benefits in AE itself may not be terribly great you WILL notice the difference in your day to day tasks on your system.
My real goal for this test was to find out if it was worth shelling out an extra $300+ to get the super fast 3000MHz RAM vs the relatively inexpensive 1600MHz and 1866MHz RAM available. Since I primarily use my system for AE and PrePro work I know that I can save the $300 and not sacrifice any significant speed boosts.
cpachris_1969 wrote:
I'm still tweaking final settings in my build....but I have an X79 board that has 8 memory slots. The memory I have is 8x 8GB sticks rated at 1866 9,9,9,27. What I have found, is that I can run 4 of them (32gb) at 2133 10,11,10,30......or I can run 8 of them at 1600 7,7,7, 24. So, I have to choose bewteen 32gb at fast frequencies and slower timings.....or 64gb at slower frequencies but better timings. At least for now. I'm still tweaking.
My take away from your testing is that I may get more benefit out of the 64gb setup. Again....good stuff.
Well, at first glance I would say you would benefit significantly more from the 64GB setup. However, that all depends on how many cores your have and if you've ever done a project that used more than 32GB. If you very rarely exeed 32GB I would go with the 2133 at 10,11,10,30, but if you've noticed that you do use more than 32GB then I'd go for the 64GB of 1600 7,7,7,24. You will see a substantial increase in speed if your RAM doesn't have to constantly be trading data with any of your hard disks. Even if your RAM is running at a very low speed (even 1333MHz) it will still be drastically faster than even a Raid 0 Sata III SSD with 1GB/s transfer speeds. (1333MHZ is capable of 8.5GB/s).
The cores come in when you turn on rendering of multiple frames simultaneously. If you have 8 cores and you reserve 2 for all other programs and want to give 3GB of RAM to each of the 6 cores used for AE then you'll end up needing 6cores*3GB = 18GB just for the cores, plus whatever you leave for your other programs (I've found that 5GBs reserved for other programs gets me the best results, but that will vary system to system and project to project). So in that case you would need a total of 23GB (you'll actually need a GB or two more based on how AE uses the memory, but you get the point). In this case you could get away with 32GB
Now, lets say you have a 12 core system and want to use 10 simultaneously wth 3GB each. That alone takes you to 30GB before you leave anything for other programs and your OS. In this case you would definitely want to opt for the 64GB.
Oh, and as for the whole timings thing. To figure out your total latency you simply add up all your timings then divide them by your operating frequency. This will give you your total latency in nano secons (ns). So in your two cases you'll have:
10+11+10+30 = 61
61/2133MHz = 28.16ns for your 2133MHz setup.
7+7+7+24 = 45
45/1600MHz = 20.78ns for your 1600MHz setup.
Basically what this means is that for each block of data you access you will save 8ns with your 1600MHz setup. HOWEVER, 2133MHz can transfer the data into and out of that block much faster than your 1600MHz setup so even though you lose 8ns accessing the block you will likely make more than that back in the 2133MHz transfer speed into and out of the block after you've accessed it.
EDIT: So I did some more math and found that it depends on how large a single block of RAM is. If it's only 32MB then the time it takes for you 1600MHz ram to transfer data in or out of the block is 2.67ns vs 1.88ns for your 2133MHz setup (32MB/(12.8GB/s for 1600 or 17GB/s for 2133)). So in that case your 1600MHz setup is faster than your 2133MHz setup anyway. However, if the block size is drastically larger than 32MB then your 2133MHz setup will come out on top. Unfortunately I don't know that actual block size for RAM. If I find it I'll post again with that info.
I hope that was helpful and let me know if something didn't quite make sense!
Copy link to clipboard
Copied
Well....we'll see how much RAM actually is utilized in new system. Yes, it is 12 cores (3960X). I'm moving from an X58 system with (a then unheard of) 12gb of RAM....and I run low pretty consistently. I can remember how ludicrous it was when I build my current system to have *gasp* 12GB of RAM. Seemed almost silly. Funny how things change.
So I won't know for sure how much will be utilized by new system until I get Adobe apps installed on it and start using it. If I opt for the 64GB setup, I might have enough to play with using a RAM disk for scratch disks and other temp files. That would be fun.
Disk transfer speed will be decent in new system. I have 16 SSD's. Running 10 of them in a RAID5 array, 4 of them in a RAID0 array, 1 for OS/Programs, and 1 for temp/scratch/junk that won't be backed up.
Copy link to clipboard
Copied
Wow, that's an awesome system. I've never heard of anyone running that many SSD's. I'd love to know what kind of transfer rates you manage to get out of your four SSD's in a RAID0. And a RAM disk would be great. I've thought about doing the same on my system once I fully populate to 64GB. With a system like that I'm assuming you do professional work with the Adobe apps? Or are you just an enthusiast like myself?
Copy link to clipboard
Copied
Transfer rates, of course, vary with the material. But on the sequential transfer speed tests...it was getting between 1.2 and 1.4GB per second. Fast. The 10 SSD array can get in excess of 4 GB per second when in RAID0 for sequential transfers. It's still pretty fast in RAID5 also.
I'm almost to the benchmark portion of my build log. I'm still testing differences between two different waterblocks for my chipset right now....but then on to benchmarks. I'll post all the results in my build log. I may also post relevant stuff in this forum also...but the inability to posts pictures here makes it not as much fun to keep this one updated. I invite you to follow along at http://www.overclock.net/t/1266202/build-log-the-big-budget-boomer-box-aka-the-bbbb/0_20
And I'd have to consider myself an enthusiast, who tries to do professional grade work with family related material.
Copy link to clipboard
Copied
Wow, those are some phenominal transfer rates. Are you using Sata II or Sata III SSDs?
And I checked out the link. You are building quite the monster. I saw the pic of the tower too... I didn't know towers got that big haha.
Yeah, I fall into the same category of enthusiast in the sense that all of my work is family, church, or indie film related... just at a much... much smaller budget
Copy link to clipboard
Copied
SATA III. Vertex 4's. I'm powering 10 of them an Areca 1882-IX-16 card, 4 of them with the built-in LSI 2308 chip on the AE11 motherboard, and 2 of them with the X79 chipset drivers.
Yeah....it's a big case. But if you want to cram in 7 radiators, 50 fans, and 4 pumps....you need a little space.
Copy link to clipboard
Copied
Yeah... just a little space to fit that... you could literally fit 8+ of my towers inside yours and still have room.
Anyway, I did some more tests and found out some more interesting things about finding the best RAM speed.
Test Project
Just a spinning rubix cube with 6 iterations of keylight to key out all the colors. The AE Memory and Multiprocessing settings were as follows: 5GB reserved for other programs, 2 CPUs reserved for other programs, 2GB per core. See original post for system specs. NOTE: I boosted the bore frequency a bit further to 4.427GHz during this test.
Results:
NOTE: Purged means that I "purged all" immediately before clicking the render button.
1553 999 24 (32.839ns total latency)
Time purged 1: 3:37
Time no purge 1: 3:15
Time no purge 2: 3:22
1864 999 24 (27.360ns total latency)
Time purged 1: 3:51
Time no purge 1: 3:03
Time no purge 2: 3:08
Time purged 2: 3:09
1864 999 22 (26.287ns total latency)
Time purged 1: 3:41
Time no purge 1: 3:08
Time no purge 2: 3:07
Time no purge 3: 2:48
Time purged 2: 3:12
2174 12 12 12 24 (27.599ns total latency)
Time purged 1: 3:45
Time no purge 1: 3:20
Time no purge 2: 3:18
Conclusion:
These numbers all seem to be pretty conclusive that the most important part for After Effects renders is to have the lowest total latency possible. So if you are in the market for RAM, get whatever will give you the lowest total latency, even if that means going with the 1600MHz RAM over the 2400MHz RAM. The argument that the higher latency will be made up in transfer rate doesn't seem to apply here. This actually makes sense because a single address in RAM would have to contain almost 500MB in order to make up for just an 8ns difference in total latency. (Actual capacity of a single address is likely drastically smaller than this. I sent an email to Corsair to find out what the max capacity actually is. I'll post here again if they ever get back to me). So in the above example where cpachris can run either 1600MHz at 777 24 or 2133MHz at 10,11,10,30 he would be MUCH better off running at 1600MHz.
Other Important Details:
Intel says that the max RAM speed they recommend is 1600MHz (Haswell I think is 1866MHz though). I believe this is because intel cores (at least the ones I researched) come with a standard base clock (bclk) of 100MHz. Everything is based off of this bclk. Your CPU frequency is generated by multiplying the bclk by some number. So to get 4.4GHz you would multiply a 100MHz bclk by 44. Pretty simple. Now RAM has (I believe) a locked multiplier that is set to 8. Which means, 100MHz x 8 = 800MHz, times 2 for Double Data Rate (DDR), gives you 1600MHz. If you try to set your frequency higher than that WITHOUT changing the bclk then you RAM may very well still be running at 1600MHz, just with worse timings.
Now, if you were to increase you bclk to 116.625 then your RAM frequency would become 116.625 x 8 x 2= 1866. The tests I ran support this. In the original post I had my bclk set to 100MHz (max RAM frequency of 1600MHz). That test showed that if I went over 1600MHz there were no benefits. In the next set of tests I only tested the min and max values so those don't give a full picture. In the last test I boosted my bclk to 116.5 which gave me a RAM frequency of 116.5 x 8 x 2 = 1864MHz. It was at this frequency that I yielded my best results. So, if you are using RAM rated for greater than 1600MHz I encourage you to try to boost your bclk to where it matches your RAM's frequency then run some tests to see if that makes a difference. I'll go back and try to run the same tests with 1600MHz to see where that falls to help either support or defeat my argument.
If anyone disagrees with my above statements, please comment and let me know why so we can figure this all out. All of my conclusions are just based on some reading that I've done and what my test results show.
EDIT:
I just ran some more tests and got the following timings while running 1600MHz at 8,8,8,24 timing.
1st set of tests:
1600 888 24 (30ns total latency)
Time: 3:14
2nd set of tests:
1600 888 24 (30ns total latency)
Time:5:34
The time difference between running 1600 and 1866 was minimal. It was exactly the same time for the first test and the 1600 time came in just 4 seconds slower than the 1866 timing. Compare the differences to running the same tests AFTER boosting the bclk and that gap increases to 15+ seconds. (comparing only the tests run at the higher cpu frequency since that plays a very large role in performance).