Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : BASIC Speed Benchmark Tests
Page 7 of 8 | |||||
Author | Message | ||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3800 |
I did find benchmarks useful (er, a longgg time ago) to show that going from CPU X to CPU Y (entirely different CPUs) things would be fast enough using C rather than ASM. The best C was _much_ slower than the original ASM but the proposed CPU was _much_ faster :) Went to an OS written in C instead of ASM, as well. Cost lots less to get the finished product to market & was much faster to get there. The old CPU was end of life & expensive, the new was a microprocessor. John |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Here's another "Recent Basic", Annex32 on an 18-pin ESP32-C3-Zero. Annex ESP32-C3-Zero .010 .080 .151 .153 .186 .277 .506 .299 Pretty comparable to the F4. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
JanVolk Senior Member Joined: 28/01/2023 Location: NetherlandsPosts: 143 |
Thanks Lizby, I don't have this module yet, but I do have the LILYGO T-PicoC3. I also did some benchmark tests with various Annex ESP Basic modules. 2020 Annex WiFi 1.40(ESP8266): Benchmark 1: 0.072 sec Benchmark 2: 0.371 sec Benchmark 3: 0.666 sec Benchmark 4: 0.588 sec Benchmark 5: 0.790 sec Benchmark 6: 1,280 sec Benchmark 7: 2,133 sec Benchmark 8: 0.909 sec 2024 Annex WiFi 1.50(ESP8266): Benchmark 1: 0.069 sec Benchmark 2: 0.359 sec Benchmark 3: 0.651 sec Benchmark 4: 0.562 sec Benchmark 5: 0.750 sec Benchmark 6: 1,221 sec Benchmark 7: 2,046 sec Benchmark 8: 0.856 sec Annex32 CAN 1.52.9 LFS: Benchmark 1: 0.009 sec Benchmark 2: 0.075 sec Benchmark 3: 0.149 sec Benchmark 4: 0.148 sec Benchmark 5: 0.197 sec Benchmark 6: 0.279 sec Benchmark 7: 0.510 sec Benchmark 8: 0.242 sec Annex32-C3 CAN USB 1.52.4 qio LFS: Benchmark 1: 0.010 sec Benchmark 2: 0.079 sec Benchmark 3: 0.155 sec Benchmark 4: 0.156 sec Benchmark 5: 0.191 sec Benchmark 6: 0.277 sec Benchmark 7: 0.498 sec Benchmark 8: 0.282 sec Annex32-S3 CAN DMT VGA HID 1.52.6 qio opi LFS: Benchmark 1: 0.009 sec Benchmark 2: 0.066 sec Benchmark 3: 0.128 sec Benchmark 4: 0.128 sec Benchmark 5: 0.155 sec Benchmark 6: 0.227 sec Benchmark 7: 0.425 sec Benchmark 8: 0.234 sec Because Annex has basic Millis for Timer and cannot be set to 0, the adjusted code is adjusted. Wlog for Print which runs in the web server, but Print can also be used. Wlog "Annex32 CAN 1.52.9 LFS:" Wlog "Benchmark 1: " t = Millis For j = 1 To 1000 Next j Wlog (Millis - t) / 1000; ' Annex32 CAN 1.52.9 LFS = 0.009 sec Wlog " sec" And a Basic benchmark written in an editor and later compiled with a C compiler is not a fair comparison. Jan |
||||
PhenixRising Guru Joined: 07/11/2023 Location: United KingdomPosts: 857 |
@JanVolk Oh I have one of those modules somewhere. Do you have a simple procedure to install Annex? I just wanna load something like we do with the mites but it seems like you have to jump through hoops with Annex32 "use this no use that...look for an old thread..." Life's too short |
||||
stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2119 |
And a Basic benchmark written in an editor and later compiled with a C compiler is not a fair comparison. picaxe basic and great cow basic |
||||
JanVolk Senior Member Joined: 28/01/2023 Location: NetherlandsPosts: 143 |
PhenixRising, This should be possible with a ToolKit. For many links you have to log in to the CiccioCB forum, but that is free and very simple and you can select various languages. There is an AnnexTK 1.22 for ESP8266 and ESP32 but this is outdated for the latest ESP microcontrollers, but the latest AnnexESP8266.bin and AnnexESP32.bin versions can still easily be updated using config in the ToolKit and the Website with the latest annex. bin. There is also an Annex ToolKit Multiplatform version V1.1 beta and a Web site with the latest annex.bin versions for ESP8266, ESP32, ESP32-C3, ESP32-S2, ESP32-S3, ESP32CAM. There is now also a serial online ToolKit for support with the latest ESP32 controllers still in beta (Annex ESP32 installer by cicciocb v 1.0), which works excellently and you do not need any additional tools and much is done automatically. And consult the manual which is very clear for Annex Basic. I don't know if I have permission from CiccioCB to post the links here? The forum: https/cicciocb.com/forum/ The manual: https/cicciocb.com/annex32help/V1.518/ Jan |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
There's now a browser flasher--much easier than the toolkit: https://flasher.cicciocb.com/dist/index.html Hold down the "Boot" button while powering on (then you can release). Press "Connect" in the web flasher and choose your serial port. It should detect what your module and memory size are. Click to choose firmware (don't remember the exact button label). You'll want the top one unless you know otherwise. Click the configure button to set your WIFI AP and password, and static address and gateway if not using DHCP. Make sure you check all 6 check boxes (on initial installation--if reflashing and you want to keep prior configuration, you only need the single box which is pre-checked). Click flash. It takes a minute or two. Then, if it successfully connected wifi, you can go to the static IP address which you set (or you can seek for it with, for instance, Advanced WiFi Scanner). If you can't connect, ask for assistance on the forum. I recently found that it wouldn't connect to one router on my network, but did connect to another--neither very far away). https://cicciocb.com/forum/ PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
JanVolk Senior Member Joined: 28/01/2023 Location: NetherlandsPosts: 143 |
Sorry the link is not correct. The forum: https://cicciocb.com/forum/ The manual: https://cicciocb.com/annex32help/V1.518/ Jan |
||||
JanVolk Senior Member Joined: 28/01/2023 Location: NetherlandsPosts: 143 |
Or choose: https://cicciocb.com/ Jan |
||||
PhenixRising Guru Joined: 07/11/2023 Location: United KingdomPosts: 857 |
Thanks guys |
||||
PhenixRising Guru Joined: 07/11/2023 Location: United KingdomPosts: 857 |
Just came across: |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6778 |
That is so true.... :) It's by no means impossible to design a computer to run a given set of benchmarks blindingly fast, sacrificing all other aspects. And again: you can compare the hardware, the OS or the programming language (or any IO / storage systems) but only one item at once. Change more than one variable and any results are at best unreliable. . Edited 2024-05-08 20:25 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
Not just "not impossible", but done: "numerous major manufacturers were caught cheating on benchmarks. OEMs of all sizes (including Samsung, HTC, Sony, and LG) took part" benchmark cheaters But that doesn't really apply to the series shown here, which shows relative speeds for a certain set of tasks for a particular piece of firmware (MMBasic) across a range of hardware--with some other interpreted Basics thrown in for the purpose of comparisons. When Peter refactors MMBasic to provide significant speed-ups, it isn't for the purpose of looking better compared to older iterations--it's to improve utility to the user (and sometimes the improvements are backported to older hardware). Benchmarks may lie, but this particular series illustrates the spectacular price/performance increases in computing power we have seen in our lifetime. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3800 |
Optimisers have been known to recognise benchmarks & do a special job :) John |
||||
PhenixRising Guru Joined: 07/11/2023 Location: United KingdomPosts: 857 |
That's what I have. It's a no-go for me, thus far...tried every darned thing. The COM-Port shows-up in the list but all I get is: No response from the Annex32 guys. Googled the message and tried everything including switching from a W11 to W10 system. Downloaded the toolkit, the COM Port shows up on the list, attempt to flash and it complains that the COM port doesn't exist. The USB-C connector is the correct orientation. I power-up, holding the Boot button so that all I have is a green LED. The COM Port even shows "J-Tag (something-or-other)" |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3150 |
I don't have that module, but have successfully flashed maybe 20 or more ESP32s using the web flasher--D1-Minis, S2-Minis, C3-Zeros, S2-Zeros. Maybe it's a duff module (although I haven't had one yet). PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
JanVolk Senior Member Joined: 28/01/2023 Location: NetherlandsPosts: 143 |
PhenixRising , The LILYGO T-PicoC3 can be flashed in a somewhat strange way. This module has an RP2040 with 4MB Flash and a 240x135 TFT screen and all other GP pins externally. A reset button and a Boot button at the bottom. Furthermore, there is a UART connection (GP8-GP11) with the ESP32-C3 (GP4-GP7). The ESP32-C3 with 4MB Flash and there is a UART connection (GP4-GP7) with RP2040 (GP8-GP11) Also important for Flashing is that the USB-C can access the two microcontrollers separately by how the USB-C plug is placed in the module. Blue LED then com port RP2040 and Green LED then com port ESP32-C3. The RP2040 can be flashed in the usual way with Boot and Reset when the LED is blue. The ESP32-C3 can be Flashed when the LED is green and with a link on GPIO9 to GND (Boot mode) and RUN(GP0) pulse to GND for reset ESP32-C3. Now you can flash the ESP32-C3 with the online serial Flasher. Chrome: WEB Installer https://cicciocb.com/ Chrome: https://flasher.cicciocb.com/dist/index.html First make contact with the serial flasher and then reset pulse. Connect Choose Connect and in the connection screen click on the line USB JTAG/Serial debug ........ Connect The ESP32-C3 should now report. Select Firmware CAN_USB_qio_LFS for an update only and choose everything the first time. Choose Configuration (WiFi Name and WiFi Password otherwise AP mode 192.168.4.1) Choose Program Furthermore, it follows itself. Suc6. RP2040 sjabloon.pdf Jan |
||||
PhenixRising Guru Joined: 07/11/2023 Location: United KingdomPosts: 857 |
DOH! So the buttons are for the RP2040 but I need to use pins on the ESP32-C3. Yeah, thinking about it, would be dumb to share those buttons. Many thanks, Jan (and Lizby) |
||||
PhenixRising Guru Joined: 07/11/2023 Location: United KingdomPosts: 857 |
Not really thread related...sorry. Edited 2024-10-09 19:46 by PhenixRising |
||||
GerryL Newbie Joined: 24/01/2019 Location: AustraliaPosts: 33 |
Comparing apples with paddy melons, here is Forth (pForth) that I have running similar routines on a STM32H743 @400MHz Forth Interpreted 0.001247 0.003843 0.008322 0.008908 0.00845 0.012053 0.022199 0.014162 Forth Compiled 0.000274 0.001837 0.003923 0.00369 0.004061 0.00582 0.013845 0.008716 \ Forth (pForth) Benchmark on STM32H743 running at 400MHz VARIABLE nJ VARIABLE nA VARIABLE nM FVARIABLE fJ FVARIABLE V-fLOG FVARIABLE V-fSIN \ Interpret mode CR CR ." INTERPRETED" CR : Forth4000 ; ." Benchmark 1 = " USEC-TICK 1000 0 DO LOOP USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 2 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 3 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP DUP DUP DUP DUP / * + SWAP - nA ! 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 4 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nA ! 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 5 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nM ! Forth4000 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 6 = " USEC-TICK 0 nJ ! CREATE RAY1 5 CELLS ALLOT BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nM ! Forth4000 5 0 DO LOOP 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 7 = " USEC-TICK 0 nJ ! CREATE RAY2 5 CELLS ALLOT BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nM ! Forth4000 5 0 DO nM @ I CELLS RAY2 + ! LOOP 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ." Benchmark 8 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 0 D>F FDUP fJ F! FDUP 2E F** F>D DROP nM ! \ converted back to 32 bit int FDUP V-fLOG F! FALOG V-fSIN F! 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR \ compiled CR CR ." COMPILED" CR : BM1 ." Benchmark 1 = " USEC-TICK 1000 0 DO LOOP USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM2 ." Benchmark 2 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM3 ." Benchmark 3 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP DUP DUP DUP DUP / * + SWAP - nA ! 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM4 ." Benchmark 4 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nA ! 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM5 ." Benchmark 5 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nM ! Forth4000 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM6 ." Benchmark 7 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nM ! Forth4000 5 0 DO LOOP 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM7 ." Benchmark 7 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 2 / 3 * 4 + 5 - nM ! Forth4000 5 0 DO nM @ I CELLS RAY1 + ! LOOP \ cannot create arrays within compiled name 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BM8 ." Benchmark 8 = " USEC-TICK 0 nJ ! BEGIN 1 nJ +! nJ @ DUP 0 D>F FDUP fJ F! FDUP 2E F** F>D DROP nM ! \ converted back to 32 bit int FDUP V-fLOG F! FALOG V-fSIN F! 999 > UNTIL USEC-TICK 2SWAP D- D>F 1E6 F/ F. CR ; : BMTEST BM1 BM2 BM3 BM4 BM5 BM6 BM7 BM8 ; BMTEST \ do it Still remembering Forth from 25 years ago so hopefully correct. Gerry |
||||
Page 7 of 8 |
Print this page |