# BASICVFP

Pages: **1 2 **

David Feugey (2125) 1787 posts |
(based on some of your add-ons of course :) ) |

Jeffrey Lee (213) 4850 posts |
The new version will still throw an error. I just want to change the timing of when the error is generated, so that it occurs at the end of the operation (after all the results have been written), instead of needing to check for errors during the core loop which is performing the calculations and writing the results. |

Jeffrey Lee (213) 4850 posts |
Apart from these changes, I think the only significant change compared to the previous test version is that the array operations (apart from matrix multiply) now use VFP/NEON vectors where possible. Currently the VFP array operations check for errors before writing back each vector. |

David Feugey (2125) 1787 posts |
It would be cool to get a FPEmulator module compiled with VFP instructions. |

Rick Murray (539) 6421 posts |
This, actually, shouldn’t be The problem here is who is willing to develop the code. There have been some tweaks, but ABC isn’t part of the open source so we just have to hope… |

Rick Murray (539) 6421 posts |
To put this into context, I tried this in Charm:
Never coded anything in Charm before, so apologies if the code sucks. Need we say more? ;-) |

David Feugey (2125) 1787 posts |
Now It should be more easy to get access to source code (under NDA, of course). |

Rick Murray (539) 6421 posts |
Now that BASICVFP is a thing, has anybody tried benchmarking the various versions of BASIC? |

Clive Semmens (2335) 1001 posts |
Is it necessary to write a whole new RISCOS image to an SD card to get BASICVFP, or can it be added to an existing RC15 card? (Does it even work on RC15, or does it require high vectors?) I’m quite interested to give it a whirl if I can do it without messing with my nicely working system, or having to change cards to use it. |

Jeffrey Lee (213) 4850 posts |
I don’t think there are any specific requirements, beyond needing a version of RISC OS which has the VFPSupport module. Since I’m feeling generous, I’ve updated the test archive from above with an up-to-date build of BASICVFP. Overall you can expect performance to be better than that of regular BASIC V (David posted some figures above). Also, in CVS there’s an array test/benchmark app that gives a good indication of the performance of the vector-optimised whole-array operations – which will actually vary a lot from machine to machine depending on whether VFP short vectors and/or NEON are supported. |

Clive Semmens (2335) 1001 posts |
Brilliant – thanks! I love the way it starts up saying © Acorn 1989 8~) |

Rick Murray (539) 6421 posts |
They all start up saying that. It’s a bit disconcerting. ;-) I’m sure there are long boring reasons why it doesn’t claim to be copyright the current owner |

Clive Semmens (2335) 1001 posts |
You’d normally expect it to say “© Acorn & XXX 1989-2017” (or whatever) so that it claims priority over anything after 1989, and gives preliminary evidence that at least on of the authors was still alive in 2017 (and that therefore the copyright doesn’t expire until 2087 at the earliest). |

Clive Semmens (2335) 1001 posts |
I can’t report any benchmarks, but I can confirm that BASICVFP runs all my publicly available programs perfectly well, and produces results with greater precision (not that it’s relevant to any of the purposes they’re for). The extra speed is probably irrelevant, so unless anyone tells me otherwise I’ll not be changing the !RUN files in the published versions to use BASICVFP. |

jan de boer (472) 28 posts |
Benchmarks… Module is: BBC BASIC V 1.67 (03 Jun 2017) Module is: BBC BASIC VI (VFP) 1.64 (04 Mar 2017) Module is: BBC BASIC VI (VFP) 1.67 (03 Jun 2017) Unreal. |

Rick Murray (539) 6421 posts |
Err… <eyes glaze over at big pile of numbers> So… VFP… That’s good, then, right? |

Rick Murray (539) 6421 posts |
Wait… I know my maths capabilities suck, but am I reading this right? FPE can outperform VFP (how?!?) and normal BASIC wipes the floor with |

Grahame Parish (436) 115 posts |
It’s in ops (operations per second), so higher is better! |

Jeffrey Lee (213) 4850 posts |
MFlops = million floating point ops / sec Also I see no FPE results in there (jan has posted results from two different versions of BASICVFP; I guess an older test build and the release version) The results would be a bit easier to read if I’d thought to reset @% before printing them! (it’s output from the “Array” test program I linked to above; the high-precision output is useful for if a test fails and it prints out the input/output numbers) |

dave_j (3231) 50 posts |
From a Titanium. *fx0 RISC OS 5.23 (14 Jun 2017) Module is: BBC BASIC V 1.68 (13 Jun 2017) *BASIC Array-array addition perf 19.8MFlops 430.9Mops Array-scalar subtraction perf 28.9MFlops 511.0Mops Scalar-array subtraction perf 27.8MFlops 516.0Mops Array-array multiply perf 21.1MFlops 431.6Mops Array-array divide perf 7.8MFlops 16.6Mops Array sum perf 35.2MFlops 596.2Mops Array modulus perf 18.9MFlops 501.0Mops Module is: BBC BASIC VI 1.68 (13 Jun 2017) *basic64 Array-array addition perf 2.4MFlops 430.9Mops Array-scalar subtraction perf 2.6MFlops 511.0Mops Scalar-array subtraction perf 2.7MFlops 511.0Mops Array-array multiply perf 2.5MFlops 431.6Mops Array-array divide perf 2.0MFlops 16.7Mops Array sum perf 3.1MFlops 591.2Mops Array modulus perf 1.7MFlops 295.6Mops Module is: BBC BASIC VI (VFP) 1.68 (13 Jun 2017) *basicvfp Array-array addition perf 330.7MFlops 806.6Mops Array-scalar subtraction perf 410.8MFlops 901.8Mops Scalar-array subtraction perf 415.8MFlops 956.9Mops Array-array multiply perf 332.3MFlops 721.4Mops Array-array divide perf 49.6MFlops 17.0Mops Array sum perf 270.5MFlops 1177.3Mops Array modulus perf 330.7MFlops 1022.0Mops > |

Chris Evans (457) 1355 posts |
Jan: What hardware were you using? |

jan de boer (472) 28 posts |
Chris: The VFP benchmarks were done on an RPI3. I should have mentioned it. Titanium is still a lot faster, I see. |

Pages: **1 2 **

### Reply

To post replies, please first log in.