gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS homebrew announcements > ANN: Speed tester for libfat, SLOT-1 edition

#136796 - tepples - Sun Aug 05, 2007 12:28 pm

I updated my speed tester for libfat to work in DS mode too. Now I can use numbers to back the assertion that my R4 is as fast as my GBA Movie Player and that the Games n' Music is six times slower than either of them.
_________________
Driven from Tilwick by ice storms, couldn't fit in in Flower Bud...

Nintendo DS: With two ARMs, who needs legs?

#136800 - simonjhall - Sun Aug 05, 2007 1:33 pm

Quote:
the Games n' Music is six times slower than either of them

With which test is it six times faster?

A 'run all tests' option would be nice, which dumped out the timings for all of them to the screen.
Oh and nice font :-)
_________________
Big thanks to everyone who donated for Quake2

#136801 - tepples - Sun Aug 05, 2007 2:00 pm

simonjhall wrote:
Quote:
the Games n' Music is six times slower than either of them

With which test is it six times faster?

4 KiB sequential read: 24 lines on R4, 169 lines on GNM.

4 KiB random read: 32 lines on R4, 170 lines on GNM.

Quote:
A 'run all tests' option would be nice, which dumped out the timings for all of them to the screen.

Thanks for the suggestion. I'll have to look into a way of compensating for tests that take longer than 228 (GBA) or 263 (DS) lines while I'm at it.
_________________
Driven from Tilwick by ice storms, couldn't fit in in Flower Bud...

Nintendo DS: With two ARMs, who needs legs?

#136810 - spinal_cord - Sun Aug 05, 2007 4:35 pm

on neo r6 i get

4kbit seq - 105 lines
4kbit rand - 106 lines

so what is better, higher numbers or lower ones?
_________________
I'm not a boring person, it's just that boring things keep happening to me.
Homepage

#136813 - tepples - Sun Aug 05, 2007 4:46 pm

Smaller numbers are faster. Does it also give a value in ?s (microseconds)?
_________________
Driven from Tilwick by ice storms, couldn't fit in in Flower Bud...

Nintendo DS: With two ARMs, who needs legs?

#136817 - Doom5 - Sun Aug 05, 2007 5:21 pm

Here's my results from my Supercard Lite with a 1GB Made in Japan micro sd card.

4k Seq = 20 lines
16K Seq = 82 lines
4k Ran = 20/21 lines
16K Ran = 82 lines

Any way to write a benchmark to test the speed of the external RAM on Slot-2 devices like all the supercards, M3s, EZ Flashes, etc?

#136818 - tepples - Sun Aug 05, 2007 5:36 pm

Doom5 wrote:
Any way to write a benchmark to test the speed of the external RAM on Slot-2 devices like all the supercards, M3s, EZ Flashes, etc?

SLOT-2 RAM runs at precisely the speed that WAITCNT (called EXMEMCNT on the DS) dictates. If you patch the speed tester with the FCSR DLDI, it will test this. Are you looking for a program that exercises the RAM at various speeds and finds a speed that's stable? I'd write one of those, but I've already posted my stance on the unclear copyright licensing on Lick's RAM library to the library's official topic.

But right now there's a defect when a read takes longer than a frame. The next version will fix this defect, using CPU cycles instead of scanlines as the counting unit.
_________________
Driven from Tilwick by ice storms, couldn't fit in in Flower Bud...

Nintendo DS: With two ARMs, who needs legs?

#136822 - calcprogrammer1 - Sun Aug 05, 2007 6:05 pm

Games n' Music:
Sequential (512 byte): 45 lines
Sequential (4 KiB): 183 lines
Sequential (16KiB): 205 lines
Random (512 byte): around 50 to 60
Random (4 KiB): 190 to 200 lines
Random (16KiB): around 215 lines

GBA Movie Player v2 CF:
Sequential (512 byte): 8 lines
Sequential (4 KiB): 41 lines
Sequential (16 KiB): 172 lines
Random (512 byte): around 10
Random (4 KiB): around 45
Random (16 KiB): around 172

GnM with stock 128MB microSD
GBAMP with 512MB PNY CF
_________________
DS Firmware 1, Datel Games n' Music card / Chism's FW hacked GBA MP v2 CF

There's no place like 127.0.0.1.

#136823 - OSW - Sun Aug 05, 2007 6:08 pm

i'm interested in seeing the comparisons between carts, so thanks for making this.

will the microsds affect results?

#136831 - tepples - Sun Aug 05, 2007 6:40 pm

OSW wrote:
will the microsds affect results?

Yes. I originally wrote this back when GBAMP CF was the only card, and people were complaining about slow CF cards affecting movie playback.

Times will be reported in a different format in the new version that I'm going to release tomorrow, so please don't get too attached to "lines".
_________________
Driven from Tilwick by ice storms, couldn't fit in in Flower Bud...

Nintendo DS: With two ARMs, who needs legs?

#136838 - Sunray - Sun Aug 05, 2007 7:32 pm

I get 116 lines (4 KiB sequential) on my DS-Xtreme. That's quite slow. When transferring files using USB I get more than 10 MB/s, so it can't be the memory speed. Must be the driver then?

#136839 - calcprogrammer1 - Sun Aug 05, 2007 7:37 pm

I doubt it's the driver, it's probably the hardware on the DS side. I can write my microSD really fast on my PC, but the GnM's microSD hardware only runs at 4MHz I think. The DS-X DS side hardware that reads the memory is probably much slower than the USB hardware.
_________________
DS Firmware 1, Datel Games n' Music card / Chism's FW hacked GBA MP v2 CF

There's no place like 127.0.0.1.

#136844 - spinal_cord - Sun Aug 05, 2007 9:41 pm

OK then

_Neo R6 Gold_
seq 512 - 25 lines, 1578 ?s
seq 4kb - 102 lines, 6540 ?s
seq 16kb - 146 lines, 9394 ?s
rand 512 - 29 lines, 1778 ?s
rand 4kb - 105 lines, 6731 ?s
rand 16kb - 148 lines, 9461 ?s
_________________
I'm not a boring person, it's just that boring things keep happening to me.
Homepage

#136891 - deliriumlb - Mon Aug 06, 2007 4:35 am

CycloDS Evolution
Kingston Japan 2gb microsd

Sequential 512 byte - 9 Lines - 335 ?s
Sequential 4kb - 41 Lines - 2596 ?s
Sequential 16kb - 161 Lines - 10307 ?s
Random 512 byte - 13 Lines - 758 ?s
Random 4kb - 43 Lines - 2736 ?s
Random 16kb - 164 Lines - 10436 ?s

edit: added ?s times


Last edited by deliriumlb on Mon Aug 06, 2007 2:52 pm; edited 1 time in total

#136900 - cornaljoe - Mon Aug 06, 2007 8:37 am

EZV
1GB Kingston (JPN)
Code:
Sequential 512 byte - 4  Lines
Sequential 4kb -      17 Lines
Sequential 16kb -     70 Lines
Random 512 byte -     6  Lines
Random 4kb -          20 Lines
Random 16kb -         73 Lines


1GB SanDisk Ultra II
Code:
Sequential 512 byte - 4  Lines
Sequential 4kb -      17 Lines
Sequential 16kb -     70 Lines
Random 512 byte -     9  Lines
Random 4kb -          23 Lines
Random 16kb -         76 Lines


EZ4 Lite Deluxe

1GB Kingston (JPN)
Code:
Sequential 512 byte - 16 Lines
Sequential 4kb -      69 Lines
Sequential 16kb -     24 Lines
Random 512 byte -     17 Lines
Random 4kb -          75 Lines
Random 16kb -         31 Lines


1GB SanDisk Ultra II
Code:
Sequential 512 byte - 16 Lines
Sequential 4kb -      69 Lines
Sequential 16kb -     25 Lines
Random 512 byte -     17 Lines
Random 4kb -          75 Lines
Random 16kb -         32 Lines

#136902 - Egglet - Mon Aug 06, 2007 9:21 am

R4 + 1GB ByteStor MicroSD (From Amazon.co.uk, own stock not a reseller)

Sequential 512 byte - 5 Lines
Sequential 4kb - 24 Lines
Sequential 16kb - 95 Lines
Random 512 byte - 9 Lines
Random 4kb - 27 Lines
Random 16kb - 99 Lines

#136911 - tepples - Mon Aug 06, 2007 11:47 am

The tester has been revised (again). It displays microseconds, not scanlines. (The micro sign is Alt+0181). It verifies that the first four bytes of a sector have been correctly read, as gmtf2.dldi's failure mode on some cards tends to create falsely high read speeds. It also displays the average time so far in this test in addition to the maximum time for the last few blocks, and it can run times for all six methods on one screen.

Get it from the same place

I found a factor of eight difference in sustained sequential transfer rates from the same microSD card between two adapters:

Games n' Music, gmtf2.dldi, SanDisk 1 GB microSD from Taiwan
Seq 16K: Error
(Incidentally, this driver also fails Chishm's read test on the same card.)

Games n' Music, gmtf.dldi, SanDisk 1 GB microSD from Taiwan
Seq 16K: avg 50120 ?s

R4, firmware 1.10 autopatcher, SanDisk 1 GB microSD from Taiwan
Seq 16K: avg 6119 ?s

And it appears that the maximum time for sequential access closely matches the average and maximum times for random access. This appears to have something to do with underlying flash sectors larger than the standard ATA 512-byte block, where reading another block from a sector (which is probably buffered inside the memory card) is faster than seeking to another sector.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#137495 - ps2aich - Sun Aug 12, 2007 3:47 pm

EZ-V Kingston 1 GB Japan
Sequential (512 B): max 366 ?s, avg 180 ?s
Sequential (4 KiB): max 1422 ?s, avg 1401 ?s
Sequential (16 KiB): max 5619 ?s, avg 5585 ?s
Random (512 B): max 502 ?s, avg 476 ?s
Random (4 KiB): max 1582 ?s, avg 1552 ?s
Random (16 KiB): max 5769 ?s, avg 5743 ?s

GBAMP SD NoName 1 GB
Sequential (512 B): max 1334 ?s, avg 678 ?s
Sequential (4 KiB): max 5535 ?s, avg 5413 ?s
Sequential (16 KiB): max 21735 ?s, avg 21638 ?s
Random (512 B): max 397 ?s, avg 1357 ?s
Random (4 KiB): max 5549 ?s, avg 5411 ?s
Random (16 KiB): max 21775 ?s, avg 21670 ?s

#140323 - OSW - Sat Sep 15, 2007 10:05 am

Ez4 Deluxe
Kingston 1 GB Japan

Sequential (512 B): avg 475 ?s
Sequential (4 KiB): avg 3775 ?s
Sequential (16 KiB): avg 151135 ?s
Random (512 B): avg 986 ?s
Random (4 KiB): avg 3847 ?s
Random (16 KiB): avg 15143 ?s


Supercard One
Kingston 1 GB Japan

Sequential (512 B): avg 253 ?s
Sequential (4 KiB): avg 2016 ?s
Sequential (16 KiB): avg 8067 ?s
Random (512 B): avg 528 ?s
Random (4 KiB): avg 2068 ?s
Random (16 KiB): avg 8120 ?s

#140389 - tuLL - Sun Sep 16, 2007 12:59 am

M3 Lite Perfect
Kingston 2 GB Japan

Sequential (512 B): avg 645 ?s
Sequential (4 KiB): avg 5085 ?s
Sequential (16 KiB): avg 20284 ?s
Random (512 B): avg 1348 ?s
Random (4 KiB): avg 5181 ?s
Random (16 KiB): avg 20379 ?s

Isn't this slow? I was expecting it to be much faster.

I have my card almost full, is that important?

Still, I never get any slowdowns playing movies tho.

#140434 - OSW - Sun Sep 16, 2007 11:41 am

well, i think the slot two carts are all slower than slot one carts.

your figures are not too dissimilar to mine. take into account that i think the Kingston 2Gb is slower than the 1Gb.

i'm pretty sure whats on your cart won't affect it much.
And i don't think you need a super fast cart to play dpg movies well too.


Here is a question from me. What effect will FAT vs FAT32 and cluster sizes have on the performance?

#140461 - tepples - Sun Sep 16, 2007 5:44 pm

OSW wrote:
What effect will FAT vs FAT32 and cluster sizes have on the performance?

FAT will have larger clusters than FAT32. Larger clusters will make "sequential" performance slightly faster in some cases, especially if your card is fragmented.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#140633 - Mrshlee - Tue Sep 18, 2007 4:37 pm

What's the best one?

I'll test all my cards soon.. I've got a whole bunch of those suckers.
_________________
MrShlee.com
Projects
Dev-Scene
MyTechpedia

#142972 - HolmeBrian - Mon Oct 15, 2007 7:10 pm

for the Games nMusic are all the cards the same speed or do some Read/Write faster plus anyone having problems with the V1.22???

as in 1gb/2gb or one comes with or difference in manufacture??

#143141 - OSW - Wed Oct 17, 2007 7:52 am

Not quite sure what your first question was... The same model cards should be very similar or almost identical. Different Model and Brand cards will surely be different.

Game's and music is quite slow, but probably satisfactory for most homebrew (although i hear moonshell performance isn't great, plus some homebrew doesn't work)

EDIT: New test results: (3rd jan 08)

Acekard RPG (nand)

Code:
Sequential (512 B): avg 285 ?s
Sequential (4 KiB): avg 2161 ?s
Sequential (16 KiB): avg 8558 ?s
Random (512 B): avg 637 ?s
Random (4 KiB): avg 2279 ?s
Random (16 KiB): avg 8632 ?s


Acekard RPG - 1gigabyte kingston made in japan

Code:
Sequential (512 B): avg 284 ?s
Sequential (4 KiB): avg 2161 ?s
Sequential (16 KiB): avg 8563 ?s
Random (512 B): avg 639 ?s
Random (4 KiB): avg 2271 ?s
Random (16 KiB): avg 8681 ?s


strangely close times 0_0 i guess it's due to the DLDI drivers, considering i did expect different performance in the two areas from SD to Nand Flash.

Supercard One (newly released official dldi file supporting unaligned r/w)
Kingston 1 GB Japan
Code:
Sequential (512 B): avg 253 ?s
Sequential (4 KiB): avg 2015 ?s
Sequential (16 KiB): avg 8048 ?s
Random (512 B): avg 530 ?s
Random (4 KiB): avg 2073 ?s
Random (16 KiB): avg 8111 ?s


almost identical to barnis unofficial dldi!


Last edited by OSW on Sat Jan 05, 2008 2:19 am; edited 1 time in total

#148367 - josath - Sat Jan 05, 2008 12:43 am

Hi,

Looks like a useful app, for testing read performance at least. Might be nice to also test write performance?

Anyway I stuck them all in a wiki table for easy comparison. I'll try and test my loads of cards sometime this weekend and add them to the table.

Linky: http://dev-scene.com/NDS/CartSpeed

#148685 - josath - Tue Jan 08, 2008 10:35 pm

added another 3 carts to the above wiki list (ds-x, supercard cf, and TTDS), as well as with different microSD carads. it's amazing that the flash card can make as much a difference as the DS/media adaptor. well, except for the gnm, which is just plain slow.

#149378 - ps2aich - Sat Jan 19, 2008 12:00 pm

R6Gold2008

Sandisk 4GB MicroSDHC
Sequential (512 B) max: 1955 ?s, avg: 992 ?s
Sequential (4 KiB) max: 7911 ?s, avg: 7871 ?s
Sequential (16 KiB) max: 31612 ?s, avg: 31458 ?s
Random (512 B) max: 2144 ?s, avg: 2061 ?s
Random (4 KiB) max: 8103 ?s, avg: 7994 ?s
Random (16 KiB) max: 31775 ?s, avg: 31495 ?s

Kingston 1GB Japan
Sequential (512 B) max: 1612 ?s, avg: 815 ?s
Sequential (4 KiB) max: 6533 ?s, avg: 6477 ?s
Sequential (16 KiB) max: 25961 ?s, avg: 25882 ?s
Random (512 B) max: 1667 ?s, avg: 1638 ?s
Random (4 KiB) max: 6577 ?s, avg: 6522 ?s
Random (16 KiB) max: 26007 ?s, avg: 25949 ?s

#153692 - OSW - Fri Apr 04, 2008 12:07 am

New test results:

Acekard 2
with Kingston 1GB Japan

Code:

Sequential (512 B): 201 ?s
Sequential (4 KiB): 1593 ?s
Sequential (16 KiB): 6356 ?s
Random (512 B): 416 ?s
Random (4 KiB): 1640 ?s
Random (16 KiB): 6406 ?s


TTDS
with Kingston 1GB Japan

Code:

Sequential (512 B): 196 ?s
Sequential (4 KiB): 1554 ?s
Sequential (16 KiB): 6208 ?s
Random (512 B): 405 ?s
Random (4 KiB): 1600 ?s
Random (16 KiB): 6256 ?s

#153818 - JLsoft - Sun Apr 06, 2008 10:25 pm

M3 DS Real - v3.3/E20 Kernel - .NDS Patched using dldi_ds.m3 from \SYSTEM

pqi 4GB MicroSDHC (formatted as FAT)
Code:

Sequential  (512 B) --  248 ms
Sequential  (4 KiB) -- 1960 ms
Sequential (16 KiB) -- 7833 ms
Random      (512 B) --  479 ms
Random      (4 KiB) -- 1987 ms
Random     (16 KiB) -- 7851 ms


Kingston 1GB (Japan) MicroSD (formatted as FAT)
Code:

Sequential  (512 B) --  208 ms
Sequential  (4 KiB) -- 1642 ms
Sequential (16 KiB) -- 6556 ms
Random      (512 B) --  412 ms
Random      (4 KiB) -- 1668 ms
Random     (16 KiB) -- 6591 ms

#153904 - Doom5 - Tue Apr 08, 2008 2:24 am

DSTT firmware on SCDSONE SDHC

A-Data 4GB SDHC Class 6 card

Sequential (512 B) -- 189 ms
Sequential (4 KiB) -- 1500 ms
Sequential (16 KiB) -- 6016 ms
Random (512 B) -- 374 ms
Random (4 KiB) -- 1537 ms
Random (16 KiB) -- 6024 ms

This card is even faster than my Made in Japan 1GB Kingston card! :)

#153907 - tepples - Tue Apr 08, 2008 2:36 am

Back in the days before DVD, people used to express data storage throughput in a unit called "X", defined such that 1X is 150 KiB per second, the basic throughput of CD-ROM Mode 1. A 1X device would return in the neighborhood of 107000 for the sequential test. So you can find how many "X" your card is by dividing 107000 by your card's Sequential (16 KiB) time.

Semi-related tidbit: Nintendo shied away from discs during the N64 generation because CD-ROM was only 2X (as seen in PS1), and cartridges were at least an order of magnitude faster. DVD-ROM technology finally introduced reasonably fast optical drive throughput, which is why GameCube and Wii use a slight variant of DVD-ROM.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#153913 - Doom5 - Tue Apr 08, 2008 8:34 am

Tepples: Would it possible to write a version of your speed tester than runs from slot 2 and would test the speed of a DS game's NAND flash memory?

It would be interesting to see how fast the cards are. Also, if launch game cards are slower/faster than recent ones, and if games that are larger also have a different speed.

#153976 - tepples - Tue Apr 08, 2008 9:36 pm

Doom5 wrote:
Tepples: Would it possible to write a version of your speed tester than runs from slot 2 and would test the speed of a DS game's NAND flash memory?

That would involve writing a dumper. I don't yet know how to write a dumper, and the people who do know how to write a dumper (e.g. Chishm) aren't talking for fear that pirates might hear.

The speed tester uses a specially constructed data file so that it knows that the DLDI driver is actually reading data, as opposed to making dummy reads. I added this when I found that the second GnM DLDI was not compatible with one of my microSD cards (a SanDisk 1 GB that I use with my R4). I know of no way for somebody outside Nintendo's NDA to write this data file to an authentic Game Card.

Actually, it wouldn't need to run from SLOT-2. It would load entirely into RAM, and then the user would eject the flash equipment and insert the authentic Game Card. It's not like REIN and RAC, which need to write back to the file system after they have backed up the Game Card's save data.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#155574 - AO - Thu May 01, 2008 2:09 am

Getting into homebrew for the NDS and wanted to find the possiblity of streaming textures/audio from the flash card.

Sandisk Micro SDHC 8GB + Cyclo DS Evo 1.3:
Code:

Seq (512B): max: 572us avg: 298us = 1,72MB/s
Seq (4KB): max: 2523us avg: 2403us = 1,70MB/s
Seq (16KB): max: 9809us avg: 9624us = 1,70MB/s

Rand (512B): max: 624us avg: 595us = 0,86MB/s
Rand (4KB): max: 2531us avg: 2414us = 1,70MB/s
Rand (16KB): max: 9891us avg: 9695us = 1,69MB/s

I'm quite happy with that, from the speed chart many seem to have pretty good transfer rate too so streaming textures on demand seems like something that would be OK to do.

#158310 - HyperHacker - Mon Jun 09, 2008 12:55 am

If I'm doing the math right, GnM can manage about 319K/s with a Sandisk 2GB card. So like you said about 1/6th what others can do, but still better than I expected.

Why doesn't it show speeds in K/s anyway?
_________________
I'm a PSP hacker now, but I still <3 DS.

#158316 - tepples - Mon Jun 09, 2008 3:23 am

HyperHacker wrote:
GnM can manage about 319K/s with a Sandisk 2GB card.

So it's consistent with what I tell other people: GnM is about as fast for reading as a PlayStation console's 2x CD-ROM drive. (For CD-ROM, 1x means 150 KiB/s.)

HyperHacker wrote:
Why doesn't it show speeds in K/s anyway?

Because it was designed to help me assess the feasibility of a program that streams data from the card. Such a program has to make sure that the card finishes reading the data within one frame, and each frame is about 16700 ?s long.

To estimate the speed from these figures, divide 16384 or 15625 by the Seq (16KB) average time. Use 16384 for results in MB/s; use 15625 for MiB/s.

Doom5: It appears I might have misunderstood your question. Were you asking about reading the game itself or reading its save chip?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#158369 - Doom5 - Mon Jun 09, 2008 8:07 pm

tepples wrote:

Doom5: It appears I might have misunderstood your question. Were you asking about reading the game itself or reading its save chip?


An actual DS cart, rather the game data from it. There is a dumper out there, but unfortunately, the the author has not released the source for it.

#158391 - HyperHacker - Tue Jun 10, 2008 9:45 am

Would dumping code be necessary for a speed test? If you just try to read the card without doing all the encryption stuff, I imagine it might just read as random garbage data, but the data itself isn't really important for this.
_________________
I'm a PSP hacker now, but I still <3 DS.

#158513 - OSW - Thu Jun 12, 2008 4:32 pm

New test result:

G6 DS REAL (1GB version)

Code:

Sequential (512 B): 165 ?s
Sequential (4 KiB): 1296 ?s
Sequential (16 KiB): 5157 ?s
Random (512 B): 337 ?s
Random (4 KiB): 1344 ?s
Random (16 KiB): 5204 ?s


Is this the fasted card...?