There's general dismay over the crappy SD performance of the 5D3. There are various theories I've read about the performance and what the camera is doing, one of them is that the camera is downclocking the CF card. Canon wouldn't comment on it in their forums other than to say they don't comment on third party websites.
So I did some testing today with three cards:
Lexar 800x 128G CF = ~50MB/sec write speed (rated write speed 120MB/sec)
SanDisk Ultra 30M/s 64G SDXC = ~10MB/sec write speed (sigh) (rated write speed 30MB/sec)
SanDisk Extreme Plus 64G Micro SDXC = ~20MB/sec write speed (rated read speed 80MB/sec, this hits the camera's hardware cap for writing to SD)
I wanted to find out if the camera was indeed downclocking the CF card and/or what the algorithm was in terms of writing to the cards. I came up with four propositions:
1. The cards were written to serially at their fastest rate.
2. The cards were written to in parallel at their fastest rate.
3. The faster card was downgraded to the speed of the slower card with serial writes.
4. The faster card was downgraded to the speed of the slower card with parallel writes.
I considered that one or several of these approaches might be used, depending on the configuration of the camera in terms of RAW and JPEG and which card was receiving which.
For my method I just focused on the same subject and shot away at high speed until the buffer was full, then let the buffer drain. I marked time at the buffer fill point and when the writing stopped. There were two exceptions in that the faster SD card paired with the CF, in L,L mode, I couldn't fill the buffer, so I stopped after 25 seconds and then let it drain. And, with the faster SD card two of the algorithms looked like they could predict the result and I wanted to try to differentiate them so I continued to run the shutter past the buffer fill point. The result did not change much. Cards were formatted (SD to low level) between every test run.
I used each card running solo in RAW mode to obtain a baseline reading/estimate for its write speed figuring this would have the least camera processing overhead and the bulk of the work is writing to the card.
These speeds and the data written during each test run were then used to plug into the 4 theories above, and the theories who's prediction matched the observations were flagged out with green boxes on their predicted times.
Some basic observations:
1. writing to multiple was the same as writing separate if the format was identical, so this didn't have any benefit or detriment.
2. no downclocking prediction better explained something that simple serial and parallel predictions could explain, and the simple parallel and serial predictions explained some configurations better than the downclocking predictions. So it would seem there is no downclocking and this I think was just a handwaving explanation that people have come up with to explain the degraded performance when an SD card is plugged in, especially if RAW was being used.
3. Canon sucks for crippling the 5D3 SD slot. It's crippled though, not useless as can be seen below.
4. In the table the MB/s rates are calculated for the amount of data written to a card and then using the total time for the camera to finish writing. So it's an "effective" number that shows the gimping down based on the SD card from the max rate of the card. The T() columns indicate the time predicted to handle the writing load in that configuration for the card based on the observed speed for the card operating in solo, RAW mode (least overhead for the camera).
5. The effective performance of the various configurations is in the eFPS column. This is the number of frames you are getting per second with the buffer discounted (continuous shooting). So, the fastest performance (I didn't test simple L mode on any cards) in the chart is L,L with a 20MB/s write SD card. This is faster than writing RAW solo to an 50MB/sec CF card. So if you are not a RAW shooter then you can do just fine using the SD card as a failsafe as-you-go backup. In this case I couldn't fill the buffer.
6. The absolute no-no is writing JPG to CF and RAW to SD. This brings you down to a best case performance of 0.3 frames per second which is only 20% of the speed of the CF card on its own writing RAW.
Conclusions
1. Downclocking theory holds no water. It would appear that the best theory for the 5D3's algorithm is simply that it is writing to both cards in parallel to the max speed of the card when it has matching formats (R,R) or (L,L) and I would assume other similar configurations, and so just ends up capped by the gimped SD card performance. When formats mismatch, the camera cannot write in parallel, but must write serially. I'd assume first writing the RAW image, then doing the JPG conversion, and writing the JPG.
2. knowing how the camera deals with the SD card does give you some options to use the SD card still... An SD card can cause exaggerated damage to perceived performance then because the write speed of the slot is capped, plus as in my case, a card labelled "30M/s" only has "10M/s" write speed, and then the use of a mismatched format will trigger serial writes... and if the larger data format is written to the SD card you get a massive disaster for performance. if you use it to create backup JPG files at S1 size then you should get maybe 85% of the speed of shooting CF RAW at full size itself. This is not bad. CF/MRAW + SD/M in my test ran at 98% of the speed of full sized RAW on its own. CF/mRAW + SD/L was 84% of full sized RAW on its own. I think these are all viable configurations, I like mRAW for my shooting and I like to have the L sized JPG just in case I needed more resolution.
3. some configurations are performance killers, RAW should never be written to the SD, ever ever basically. Never using an SD card in any configuration though is a paranoid solution based on the downclocking theory which I think these tests discredit.
4. using an SD card incapable of achieving 20MB/sec is going to harm you, and from what I've read this is the fastest the camera can do on the SD slot. It looks like the rule of thumb may be to divide the read speed by three to guess at what it will do in the Canon 5D3 and cap it at 20MB/sec. Remember to never judge the write speed of these cards by their labels...
6. The microSD in an adapter seems to be a perfectly fine option. I got this to use in a GoPro Hero but will now share it with the 5D3. However, it formatted a lot slower than the 64 gig Ultra card.
7. I'd pay to fix this SD slot. My preference was always to use SD for convenience because I can just slip it into my Macbook without needing a card reader, but this is the end of that.
You are free to use / modify / publish / criticize / improve / disprove these results here or on any forum, blog, website, whatever. In my reading over the last couple of days I didn't see anyone trying to comprehensively test these configs to try to answer the questions, just a lot of hearsay and guesswork. So if you use this for anything just credit/blame Chromatropic please.
So I did some testing today with three cards:
Lexar 800x 128G CF = ~50MB/sec write speed (rated write speed 120MB/sec)
SanDisk Ultra 30M/s 64G SDXC = ~10MB/sec write speed (sigh) (rated write speed 30MB/sec)
SanDisk Extreme Plus 64G Micro SDXC = ~20MB/sec write speed (rated read speed 80MB/sec, this hits the camera's hardware cap for writing to SD)
I wanted to find out if the camera was indeed downclocking the CF card and/or what the algorithm was in terms of writing to the cards. I came up with four propositions:
1. The cards were written to serially at their fastest rate.
2. The cards were written to in parallel at their fastest rate.
3. The faster card was downgraded to the speed of the slower card with serial writes.
4. The faster card was downgraded to the speed of the slower card with parallel writes.
I considered that one or several of these approaches might be used, depending on the configuration of the camera in terms of RAW and JPEG and which card was receiving which.
For my method I just focused on the same subject and shot away at high speed until the buffer was full, then let the buffer drain. I marked time at the buffer fill point and when the writing stopped. There were two exceptions in that the faster SD card paired with the CF, in L,L mode, I couldn't fill the buffer, so I stopped after 25 seconds and then let it drain. And, with the faster SD card two of the algorithms looked like they could predict the result and I wanted to try to differentiate them so I continued to run the shutter past the buffer fill point. The result did not change much. Cards were formatted (SD to low level) between every test run.
I used each card running solo in RAW mode to obtain a baseline reading/estimate for its write speed figuring this would have the least camera processing overhead and the bulk of the work is writing to the card.
These speeds and the data written during each test run were then used to plug into the 4 theories above, and the theories who's prediction matched the observations were flagged out with green boxes on their predicted times.
Some basic observations:
1. writing to multiple was the same as writing separate if the format was identical, so this didn't have any benefit or detriment.
2. no downclocking prediction better explained something that simple serial and parallel predictions could explain, and the simple parallel and serial predictions explained some configurations better than the downclocking predictions. So it would seem there is no downclocking and this I think was just a handwaving explanation that people have come up with to explain the degraded performance when an SD card is plugged in, especially if RAW was being used.
3. Canon sucks for crippling the 5D3 SD slot. It's crippled though, not useless as can be seen below.
4. In the table the MB/s rates are calculated for the amount of data written to a card and then using the total time for the camera to finish writing. So it's an "effective" number that shows the gimping down based on the SD card from the max rate of the card. The T() columns indicate the time predicted to handle the writing load in that configuration for the card based on the observed speed for the card operating in solo, RAW mode (least overhead for the camera).
5. The effective performance of the various configurations is in the eFPS column. This is the number of frames you are getting per second with the buffer discounted (continuous shooting). So, the fastest performance (I didn't test simple L mode on any cards) in the chart is L,L with a 20MB/s write SD card. This is faster than writing RAW solo to an 50MB/sec CF card. So if you are not a RAW shooter then you can do just fine using the SD card as a failsafe as-you-go backup. In this case I couldn't fill the buffer.
6. The absolute no-no is writing JPG to CF and RAW to SD. This brings you down to a best case performance of 0.3 frames per second which is only 20% of the speed of the CF card on its own writing RAW.
Conclusions
1. Downclocking theory holds no water. It would appear that the best theory for the 5D3's algorithm is simply that it is writing to both cards in parallel to the max speed of the card when it has matching formats (R,R) or (L,L) and I would assume other similar configurations, and so just ends up capped by the gimped SD card performance. When formats mismatch, the camera cannot write in parallel, but must write serially. I'd assume first writing the RAW image, then doing the JPG conversion, and writing the JPG.
2. knowing how the camera deals with the SD card does give you some options to use the SD card still... An SD card can cause exaggerated damage to perceived performance then because the write speed of the slot is capped, plus as in my case, a card labelled "30M/s" only has "10M/s" write speed, and then the use of a mismatched format will trigger serial writes... and if the larger data format is written to the SD card you get a massive disaster for performance. if you use it to create backup JPG files at S1 size then you should get maybe 85% of the speed of shooting CF RAW at full size itself. This is not bad. CF/MRAW + SD/M in my test ran at 98% of the speed of full sized RAW on its own. CF/mRAW + SD/L was 84% of full sized RAW on its own. I think these are all viable configurations, I like mRAW for my shooting and I like to have the L sized JPG just in case I needed more resolution.
3. some configurations are performance killers, RAW should never be written to the SD, ever ever basically. Never using an SD card in any configuration though is a paranoid solution based on the downclocking theory which I think these tests discredit.
4. using an SD card incapable of achieving 20MB/sec is going to harm you, and from what I've read this is the fastest the camera can do on the SD slot. It looks like the rule of thumb may be to divide the read speed by three to guess at what it will do in the Canon 5D3 and cap it at 20MB/sec. Remember to never judge the write speed of these cards by their labels...
6. The microSD in an adapter seems to be a perfectly fine option. I got this to use in a GoPro Hero but will now share it with the 5D3. However, it formatted a lot slower than the 64 gig Ultra card.
7. I'd pay to fix this SD slot. My preference was always to use SD for convenience because I can just slip it into my Macbook without needing a card reader, but this is the end of that.
You are free to use / modify / publish / criticize / improve / disprove these results here or on any forum, blog, website, whatever. In my reading over the last couple of days I didn't see anyone trying to comprehensively test these configs to try to answer the questions, just a lot of hearsay and guesswork. So if you use this for anything just credit/blame Chromatropic please.