Pyra Pyra-optimized engines


troy

Member
Joined
May 2, 2016
Messages
42
Are there any game engines that will be able to use stuff like the M4s? Would love to squeeze as much power as possible out of it.
 
Are there any game engines that will be able to use stuff like the M4s? Would love to squeeze as much power as possible out of it.
No. We first need Drivers to.. well.. drive them. Then you'll have to write stuff for them by yourself (Including Message Passing to/from the A-15's which doesn't sound easy).The OMAP5 has tree 2D Accelerators BTW
 
What are the M4s used for, anyway? Is there any chance they're just for I/O? Like the keyboard+touchscreen+controller buttons, not the USB3-OTG or eSATA.
 
The M4s are not going to be useful for adding performance to anything, they're like 1/20th the power of the A15s...
 
Well, that still makes for a bit of computational power, even more compared to the Pandora. That would still free up to 5% of charge for A15-tied programs. If you can relieve the A15s from the smaller tasks, they could chew a bit more. Not by much, but it's still something to move the lagging line further.

If there's one thing consoles taught us, it's that every single bit of total power can and should be optimized to compensate for its lesser brute power. That's how you make Wave Race 64 and Indiana Jones and the Infernal Machine, folks. ;)
 
The M4s are not going to be useful for adding performance to anything, they're like 1/20th the power of the A15s...

Sadly I figured as much, thanks for the straightforward answer.
 
What are the M4s used for, anyway? Is there any chance they're just for I/O? Like the keyboard+touchscreen+controller buttons, not the USB3-OTG or eSATA.
They're intended to be used as some IPU (Imaging Processing Unit). Not sure how much use that use case will have with the Pyra, it's possible they could be repurposed for other things, but like exophase said, I don't they could be used to boost any performance.
 
Judging by this article you should be able to export from unreal 4 to arm linux. Judging by the other devices that are able to run Unreal 4 at playable speeds I don't think it's out of the question that you could port a game over.
 
Well, that still makes for a bit of computational power, even more compared to the Pandora. That would still free up to 5% of charge for A15-tied programs. If you can relieve the A15s from the smaller tasks, they could chew a bit more. Not by much, but it's still something to move the lagging line further.

If there's one thing consoles taught us, it's that every single bit of total power can and should be optimized to compensate for its lesser brute power. That's how you make Wave Race 64 and Indiana Jones and the Infernal Machine, folks. ;)

Parallelization isn't free and communication overhead isn't zero, especially since these CPUs aren't cache coherent with each other. I am fairly confident that most attempts to perform some small part of a task on the M4s instead of the A15s would yield a slower and more power consuming result. It might save some power if you run something entirely on the M4s, like an NES emulator or the like, but it'd be very hard to do all of the OS stuff from there.

Pandora's OMAP3530/DM3730 actually has an ARM9 somewhere in there that most people don't know about. And they don't know about it because it has a very specific purpose that isn't really relevant to most people, and I guess wasn't worth the marketing focus to inform people of. I'm not really sure what changed there with the M4s and TI's marketing, but functionally it's a similar arrangement.

(also think there's some kind of interesting mythology surrounding those N64 titles.. they didn't tap into some normally unused resource, they just ran better optimized code on the same processors everyone else was using)
 
On Pandora we have a DSP which is roughly as powerful as Cortex-A8 (on 1GHz units at least), yet it's not used for anything basically. There is pretty much no hope of seeing M4s being used for anything performance related really.
 
Hi all :)

Silly question: if scientific software would be ported to the Pyra, could it be made to run in parallel on the two Cortex A 15, thanks to OpenMP ?

@notaz and @Exophase : if there's so little hope regarding the two Cortex M4 CPUs, I guess both Vivante GC320 2D Accelerator and DSP will know a similar fate, right ?

EDIT: I played a little with OpenMP today, and it's already working just fine with @ptitSeb 's Codeblocks:

Code:
/media/Pandora/dev/openmp$ cat helloworld.c 
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[]) {
  int th_id, nthreads;
  #pragma omp parallel private(th_id)
  {
    th_id = omp_get_thread_num();
    printf("Hello World from thread %d\n", th_id);
    #pragma omp barrier
    if ( th_id == 0 ) {
      nthreads = omp_get_num_threads();
      printf("There are %d threads\n",nthreads);
    }
  }
  return EXIT_SUCCESS;
}

gcc -fopenmp helloworld.c -o helloworld

./helloworld
Hello World from thread 0
There are 1 threads

Of course, this is not really useful on the Pandora, since there's only one core :p

Cheers, Magic Sam
[doublepost=1463062080,1463048760][/doublepost]Hi again,

Could Heterogeneous System Architecture be useful in order to harness the power of the two Cortex M4 CPUs ?

Cheers, Magic Sam
 
@notaz and @Exophase : if there's so little hope regarding the two Cortex M4 CPUs, I guess both Vivante GC320 2D Accelerator and DSP will know a similar fate, right ?

DSP probably, although it's more powerful than the M4s..

GC320 I hope not, the software support is at least partly there and right now I don't even know what else is available for proper scaled screen output. But this is something that needs to be explored more.

Could Heterogeneous System Architecture be useful in order to harness the power of the two Cortex M4 CPUs ?

No.
 
OpenMP won't work with the M4s either. That needs OS threads, the M4s can't really be managed that way.
 
OpenMP won't work with the M4s either. That needs OS threads, the M4s can't really be managed that way.
Oops, sorry, I meant using OpenMP on the two A 15 CPUs, not on the two M4s. Actually, what I mean is:

OpenMP running on both A 15s and both M4s, and everything glued together with MPI (to pass messages to and from CPUs which don't share the same cache).

Does that make any sense ?

EDIT: removed my failed attempt at ASCII art :p

Cheers, Magic Sam
 
It should be possible to use OpenMP to run something on both A15s. But not on both M4s.
 
Hi all :)

Pandora's OMAP3530/DM3730 actually has an ARM9 somewhere in there that most people don't know about. And they don't know about it because it has a very specific purpose that isn't really relevant to most people, and I guess wasn't worth the marketing focus to inform people of. I'm not really sure what changed there with the M4s and TI's marketing, but functionally it's a similar arrangement.

@Exophase : is there a way to "see" that ARM9 (EDIT: is it part of TI's DaVinci package (ARM9 + DSP) ? ) from Linux on the Pandora ? Similarily, will Linux be aware of those two M4s on the Pyra ? The whole situation reminds me of the ARM920T / ARM940T issue on the GP2X...

Cheers, Magic Sam
[doublepost=1463147211,1463142981][/doublepost]
GC320 I hope not, the software support is at least partly there and right now I don't even know what else is available for proper scaled screen output. But this is something that needs to be explored more.
According to this page, it would really be a pity not to use the Vivante GC320 !

Cheers, Magic Sam
 
Last edited:
The way to optimize any software for any hardware typically involves analysing what the bottlenecks are (both in terms of software architecture which hasn't be made the right way, and also in terms of running a profiler) and then tackling the results in the most sensible order. For any given piece of software that currently runs on the Pandora, I doubt the top of the list of things to tackle would be adding support for the DSP (i.e. there are likely bigger wins elsewhere that require less work). The same is going to hold true for the Pyra - you would need an incredibly well optimized piece of software on the Pyra before considering the M4s would really be justified (or have a very unlikely border case). Of course just messing around with stuff like the M4s for fun is fair game!

Don't get me wrong, I understand the 'urge' to want to utilise every bit of processing power from a gadget, but with the complexity of hardware and software these days, there are typically enough layers that need working out before bashing away at exotic, lower powered, additional/parallel CPUs! :)
 
I'm getting the impression that the fact that the M4s would be effectively be running their own OS independently of the OS running on the A15s would be a significant complication.

-Neelix
 
Back
Top