Previous Thread
Next Thread
Print Thread
Page 4 of 7 1 2 3 4 5 6 7
Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117327 05/14/20 01:21 AM
Joined: Jun 2003
Posts: 58
C
Colin Howell Online Content OP
Member
OP Online Content
Member
C
Joined: Jun 2003
Posts: 58
Originally Posted by Colin Howell
Also, I'm not very happy with the "BOOM" sound, since I only hear a burst of noise with no sense of an initial "boom". The circuit looks correct; it may be that my little laptop speakers just don't have enough bass response, I'm not sure.

OK, after dumping output to a log file, converting it to WAV format, and listening to it on my iPhone through headphones (which, sadly, use a connector that won't work with my Macbook Pro), I can confirm that there is a deep initial boom which is simply too low in frequency (around 60 Hz) to reproduce on my laptop speakers.

Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117333 05/15/20 03:26 PM
Joined: Feb 2007
Posts: 505
C
couriersud Offline
Senior Member
Offline
Senior Member
C
Joined: Feb 2007
Posts: 505
I read from your comments that you have the netlist hooked up to a driver already.

In this case, run

Code
sh src/lib/netlist/nl_create_mame_solvers.sh


Than run "make" again to compile the updated file in src/lib/netlist/generated and to relink mame.

In the nltool log verify, that you find something along the lines
Code
 INFO: External static solver nl_gcr_f259d5f9a247b8f6_29_double_double found ...


This should give approximately 58% more performance

I can understand your frustration. Had it as well on certain circuits.

But

- Compare it to the performance of real SPICE implementations
- Bear in mind you have created a near-perfect documentation of the hardware
- Consider the future scalability.

The netlist format is kept as easy as possible - just a couple of standard elements, I even replicated the c++ preprocessor so that on separate processing of netlist files you don't even need e.g. nltool.

For the mame/discrete project I have created SPICE models e.g. for analog inputs / voltage sources. This means if you use kicad you can run very simple circuits through ngspice.

There is a ton of proof-of-concept in netlist. which needs attention, agreed.

Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117334 05/15/20 03:39 PM
Joined: Feb 2007
Posts: 505
C
couriersud Offline
Senior Member
Offline
Senior Member
C
Joined: Feb 2007
Posts: 505
For completeness, without static solvers:

Code
10.000000 seconds emulation took 3.841246 real time ==> 260.33%


with static solvers

Code
10.000000 seconds emulation took 2.432983 real time ==> 411.02%

Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117335 05/15/20 08:23 PM
Joined: Jun 2003
Posts: 58
C
Colin Howell Online Content OP
Member
OP Online Content
Member
C
Joined: Jun 2003
Posts: 58
Yes, I do indeed have it hooked up to a driver. I haven't checked it in and submitted a pull request yet, largely because of the performance issues. Also, I had to modernize the structure of the audio-related mw8080bw driver code for 280-ZZZAP to make it easier to install a netlist implementation, similar to how Vas Crabb has recently modernized the code for Gun Fight and some other mw8080bw machines.

Huh. Enabling a static solver definitely makes a difference. Unthrottled speedup without frameskipping is now around 220-225%.

Sorry, I hadn't realized that a static solver wasn't already in place; I had assumed that the static solver for MAME would have been created as part of the make process. I suppose I've missed updating a dependency somewhere.

It's good to hear that there's still room for further improvement. I'd feel worse if this was the best we could do. Other mw8080bw machines have sound circuits of similar complexity, with similar numbers of LM3900s; Midway's sound engineers seem to have been fond of using those. So to make netlist feasible for those machines, it has to be able to handle something like this.

Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117336 05/16/20 01:07 AM
Joined: May 2004
Posts: 1,616
H
Haze Offline
Very Senior Member
Offline
Very Senior Member
H
Joined: May 2004
Posts: 1,616
If it's still over 100% then I wouldn't worry too much about performance, it's cases where things get dragged below that on what people would still consider to be good hardware that it starts to cause issues for project reputation etc.

220-225% on currently available hardware sounds acceptable.

significant (non-incremental) improvements to real world single-core CPU performance seem unrealistic at this point so when things get dragged into the 'unobtainium' realm of CPU requirement it becomes a reason for concern.


Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117337 05/16/20 01:34 AM
Joined: Mar 2001
Posts: 16,539
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,539
I think it should be possible to thread off netlists as well. In real life they're not even doing anything in the CPU's clock domain, and you pretty much can't buy a CPU below 4 cores now.

Re: Netlist: 280-ZZZAP sound problems [Re: R. Belmont] #117338 05/16/20 09:31 PM
Joined: Feb 2007
Posts: 505
C
couriersud Offline
Senior Member
Offline
Senior Member
C
Joined: Feb 2007
Posts: 505
Originally Posted by R. Belmont
I think it should be possible to thread off netlists as well. In real life they're not even doing anything in the CPU's clock domain, and you pretty much can't buy a CPU below 4 cores now.

Right. Parallel support currently depends on OMP and that is not optimal. I also have plans to optimize the timing of sub-solvers. Stay tuned.

Re: Netlist: 280-ZZZAP sound problems [Re: Colin Howell] #117339 05/16/20 09:40 PM
Joined: Feb 2007
Posts: 505
C
couriersud Offline
Senior Member
Offline
Senior Member
C
Joined: Feb 2007
Posts: 505
Originally Posted by Colin Howell
Sorry, I hadn't realized that a static solver wasn't already in place; I had assumed that the static solver for MAME would have been created as part of the make process. I suppose I've missed updating a dependency somewhere.

There is currently no dependency, so no reason to be sorry :-)
It's a chicken-egg issue. No need the circuit to be running first, e.g. compiling, no issues.
Than you can create the static solvers and recompile.
If the static solver compiled in is outdated or doesn't match the floating point setup, it will be ignored. Background: one can select which floating type the solver uses for the matrix. This is rather academic and in a mame setup only double is used. But you can compile netlist with support for long double and float128 matrix support. Or even simple float. As indicated, that's more for academic edge cases which need ultimate precision and don't care about perfermance.

Re: Netlist: 280-ZZZAP sound problems [Re: couriersud] #117340 05/17/20 02:00 AM
Joined: Jun 2003
Posts: 58
C
Colin Howell Online Content OP
Member
OP Online Content
Member
C
Joined: Jun 2003
Posts: 58
Originally Posted by couriersud
Originally Posted by Colin Howell
Sorry, I hadn't realized that a static solver wasn't already in place; I had assumed that the static solver for MAME would have been created as part of the make process. I suppose I've missed updating a dependency somewhere.

There is currently no dependency, so no reason to be sorry :-)
It's a chicken-egg issue. No need the circuit to be running first, e.g. compiling, no issues.
Than you can create the static solvers and recompile.

Ah, I see now, the static solvers are actually under source code control in git, so they would be expected to be manually updated to incorporate any changes in the source netlists.

Re: Netlist: 280-ZZZAP sound problems [Re: couriersud] #117341 05/17/20 02:00 AM
Joined: Jun 2003
Posts: 58
C
Colin Howell Online Content OP
Member
OP Online Content
Member
C
Joined: Jun 2003
Posts: 58
Originally Posted by couriersud
Originally Posted by R. Belmont
I think it should be possible to thread off netlists as well. In real life they're not even doing anything in the CPU's clock domain, and you pretty much can't buy a CPU below 4 cores now.

Right. Parallel support currently depends on OMP and that is not optimal. I also have plans to optimize the timing of sub-solvers. Stay tuned.

What does OMP refer to?

Page 4 of 7 1 2 3 4 5 6 7

Who's Online Now
2 registered members (belegdol, 1 invisible), 54 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,792
Posts115,722
Members4,908
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.3