Page 1 of 2

Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Wed Aug 19, 2020 3:01 pm
by TheOldDragon
I was able to successfully build and run Supermodel [SVN r811] on an Nvidia Jetson Nano devkit..

[Compiles successfully after updating a single file.... ]

Tried it with Scud Race Plus, and it achieves about 25~29 fps in-game [@720p].... so not really playable, but it seems to be running perfectly fine otherwise...
Based on the system resources, it appears to be CPU - not GPU - constrained.
Details of Nvidia Jetson Nano Developer Kit - https://developer.nvidia.com/embedded/j ... eloper-kit
- $99 [including PSU]. 4 GiB LDDR4 RAM & 4 core Aarch64 ARM CPU [Cortex A57 core, ARM v8 ISA]. Maxwell based GPU. SDCard for main storage.
- It runs an Nvidia modified/custom version of Ubunutu 18.04 LTS [for Aarch64], with a lot of Nvidia software added.

Now I'm really tempted to spring the $399 for the Jetson NX Dev Kit.. I'm sure it would perform really well with 6 "Carmel" ARM v8.2 cores and a really beefy Volta GPU onboard... plus M.2 SSD interface and 8 GiB of RAM...

Building:
I built on the nano itself [no cross compiling].
Compiling failed due to the "-mfpmath=sse" compiler flag included in file "Makefiles/Rules.inc"

Code: Select all
###############################################################################
# Compiler Flags
###############################################################################
ARCH = -march=native -mfpmath=sse



I made changes locally on the machine... changing the above line to:
Code: Select all
ARCH = -march=armv8-a -mtune=cortex-a57


I hope this is useful info. Can one of the devs make the changes specific for ARM architecture, or do you want me to create a SourceForge account and try and submit some [IFDEF] changes?

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Fri Aug 21, 2020 5:52 pm
by Bart
That's really cool! It's great to know that Supermodel is confirmed to work on ARM. The Dolphin CPU core supports ARM so maybe one day if we borrow that or write our own JIT, performance will improve. Out of curiosity, what happens to the frame rate when you pause emulation (Alt+P)? It should continue rendering but without running the PowerPC.

I don't think it makes sense to add this to the Makefile considering 1) how small of a change it is, 2) that the use case isn't there yet given poor performance, and 3) our general lack of testing and automatic build infrastructure. Maybe we could add a comment somewhere in the Makefile instead?

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Fri Aug 21, 2020 9:39 pm
by TheOldDragon
Bart wrote:That's really cool! It's great to know that Supermodel is confirmed to work on ARM. The Dolphin CPU core supports ARM so maybe one day if we borrow that or write our own JIT, performance will improve. Out of curiosity, what happens to the frame rate when you pause emulation (Alt+P)? It should continue rendering but without running the PowerPC.

On beginner track, early part, it makes a little bit of a differnce, increasing by about 2 fps [e.g. from ~26 to about 28 fps, or 30 to 32, depending on which part of the track I'm on. [if I pause it in whilst in game [during gameplay].

Bart wrote:I don't think it makes sense to add this to the Makefile considering 1) how small of a change it is, 2) that the use case isn't there yet given poor performance, and 3) our general lack of testing and automatic build infrastructure. Maybe we could add a comment somewhere in the Makefile instead?

Sounds like a plan.

It's great that it compiles on ARM. As I said in my earlier post, I'd really like to try it on a Jetson Nano NX [which might run it at 60 fps], or even SolidRun's HoneyComb LX2K "Workstation" motherboard [mini ITX, SOC with 16 Cortex A72 cores, up to 64 GBs RAM and a PCIe Gen 3x8 slot, and 4x 10 GbE SFP+ ports]...
Once Apple goes ARM [with shipping products] there'll be a lot more desktop ARM machines about..

What I''d really love to do is bring it back to Power[PC]..... e.g. on a RaptorCS Blackbird [Power9], but that's ~$2000+, which is really pushing out the boat ;) .

Maybe I'll dig out my old PowerPC G4 Macmini from the basement and see if I can get a recent version of Debian or Ubuntu running on that and give it a try... not sure I'll be able to build it, but if I do I wonder how fast[slow] Supermodel would be? ;)

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Fri Aug 21, 2020 11:19 pm
by Bart
I'd love to hear about Supermodel running 60 FPS on an ARM device.

Supermodel on PowerPC would be awesome. It would be painful on a G4 but should work great on one of those beefy POWER9's. If we had our own JIT, we could write a PowerPC target that tried to emit code as close as possible to the original code. We would probably only have to intercept certain loads/stores and all the jump instructions, keeping 50% or more of the code largely unaltered. But I can't imagine a G4 class machine handling the rendering work.

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Sat Aug 22, 2020 10:30 am
by TheOldDragon
Bart wrote:I'd love to hear about Supermodel running 60 FPS on an ARM device.

Supermodel on PowerPC would be awesome. It would be painful on a G4 but should work great on one of those beefy POWER9's. If we had our own JIT, we could write a PowerPC target that tried to emit code as close as possible to the original code. We would probably only have to intercept certain loads/stores and all the jump instructions, keeping 50% or more of the code largely unaltered. But I can't imagine a G4 class machine handling the rendering work.

Thanks for the reply.
I'v responded to the PowerPC JIT part in a separate post I created in the "Dark Room"; hope that's OK / aligned with forum etiquette... ? :oops:

I'm tempted to get the Nano Xavier NX [for $399 USD], but don't think I'll follow through; I'm not a big fan of Nvidia as a company, and it would only be for this type of tinkering... [the Jetson Nano for $99 was much easier to "justify"].


I's apparently possible to emulate/virtualize POWER8/9 on x86-64 Linux via QEMU, so I may do some experimenting with this and see if I can:
- get the virtual machine set up, install Linux, and build supermodel
- try and get some type of 3D graphics running... eohther software LLVMpipe, or hardware accelerated OpenGL running via GPU PCIE pass-through...

So, the ultimate masochist challenge - emulate a 1990s proprietary, PowerPC base, arcade machine on a virtualized/emulated 2019 POWER9 system running on an AMD x86-64 system - it should be lots of fun... :D


RE: the G4 Macmini: yep, I think you're right. 1.425 GHz G4, 1 GB RAM and a really old Radeon 9200 GPU are probably not up to it, even if i could get a reasonably modern Linux distro and the dependencies installed....it probably wouldn't even run...

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Sun Nov 01, 2020 7:14 pm
by Totaly FuRy
I have tested Supermodel3 on my Jetson Nano 2G device, and the fps significantly increases if i slow down the powerpc frequency to 25Mhz (on scud race).

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Sun Nov 01, 2020 11:56 pm
by Bart
Is the game playable? If the frequency is too low, you may start to see corruption or slow-down.

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Mon Nov 02, 2020 3:25 am
by Totaly FuRy
Bart wrote:Is the game playable? If the frequency is too low, you may start to see corruption or slow-down.


Yes, i can play the game at ~40fps but it slow down to 20 when others cars crash for exemple.
On atract mode it can run 60 fps somethimes but slow down with no visible reason, not 3D depth related.
I think it is the PowerPC emulation that cosume most of the Jetson CPU, maybe using CUDA could solve this problem... :?:

Here a video of the attract mode :
https://www.youtube.com/watch?v=e_h6Db1mNv8

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Mon Nov 02, 2020 7:44 pm
by Bart
CPU emulation cannot be offloaded to the GPU. However, it could be greatly improved with a JIT, such as Dolphin's.

Re: Supermodel running on an Nvidia Jetson Nano dev kit...

PostPosted: Tue Nov 03, 2020 7:01 am
by Totaly FuRy
Thank for the hint, i will take a look at Dolphin's JIT.

In the mean time i will try the Mame's version of Model 3, i saw in the code that it can now run Scud Race.