Han har ju det, en Cortex F4/L4.TomasL skrev:Men dt förutsätter att du har en flyttalsprocessor, annars går det garanterat långsammare, med flera magnituder.
Hur kan jag få tag på prestandaversionen av Nucleo?
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Ja, men han ber ju oss att testa koden, på våra inbyggd system.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Du får komma till 2019 då istället för att köra med äldre hårdvara.TomasL skrev:Varför skall man testa en sak, som man inte har behov av, dessutom, använder den float, som är ett no-go i de allra flesta system.
Dessutom underlättar det utvecklingstidenbearing skrev:Fast det där förändras tack vare utvecklingen av beräkningsprestanda på små billiga mikrocontrollers. Och vissa operationer går ju faktiskt fortfare på flyttal än heltal.
Dagens processer är nog bra för att hantera flyttal.TomasL skrev:Men dt förutsätter att du har en flyttalsprocessor, annars går det garanterat långsammare, med flera magnituder.
Du KAN köra det på alla system och alla hårdvaror, om det inte är TomasL's hårdvara förståss.Rick81 skrev:Har inte testat algoritmen, men denna tråd ( och flera trådar) handlar ju om det går att köra dina beräkningar på en inbyggd processor jämfört med PC och Raspberyy pi så det vore ju intressant äntligen få svaret.
Förstår inte vad du menar? Det tar mindre än en sekund?
Jag testar min kod på både Windows, Linux, Android samt STM och jämför med MATLAB. Fungerar glasklart.bearing skrev: Han har ju det, en Cortex F4/L4.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Daniel, du får nog komma ner tillverkligheten, de flesta system har inte flyttalprocessor, av den enkla anledningen att man inte behöver den.
En duktig programmerare implementerar det hela med heltalsberäkningar, men, du är uppenbarligen en inte riktig så duktig programmerare, vilket innebär att du uppenbarligen inte är tillräckligt kompetent för att skriva funktionella program.
Typiskt för inkompetenta programmerare är just att man måste förlita sig på externa verktyg såsom matlab och liknande, eftersom kompetensen att skriva motsvarande program saknas.
Enkelt uttryckt, lär dig skriva program eller byt bransh
En duktig programmerare implementerar det hela med heltalsberäkningar, men, du är uppenbarligen en inte riktig så duktig programmerare, vilket innebär att du uppenbarligen inte är tillräckligt kompetent för att skriva funktionella program.
Typiskt för inkompetenta programmerare är just att man måste förlita sig på externa verktyg såsom matlab och liknande, eftersom kompetensen att skriva motsvarande program saknas.
Enkelt uttryckt, lär dig skriva program eller byt bransh
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Du verkar vara kaxig och inte rädd att kasta sten i glashus. Jag tänker inte kaxa tillbaka för jag känner inte dig och därmed vet jag inte din erfarenhet. Lika väl från din sida, så skärp till dig.
Alla vet att det finns ett syfte med MATLAB. Annars skulle priserna på MATLAB's Toolbox inte vara så fruktanssvärt dyra. Ytterligare trams från dig.
Jag skriver kod för användarvänlighet och tänker första hand på pedagogiken vid kodskrivning. Programmeringsspråk för mig är bara ett verktyg. Jag använder dagligen 3 språk för att underlätta mitt arbete och för att även andra ska enkelt ska förstå den. Jag skriver aldrig mer än 300 rader i en C-fil exempelvis. Jag har kodat i 10 år. Framförallt Java.
Alla vet att det finns ett syfte med MATLAB. Annars skulle priserna på MATLAB's Toolbox inte vara så fruktanssvärt dyra. Ytterligare trams från dig.
Jag skriver kod för användarvänlighet och tänker första hand på pedagogiken vid kodskrivning. Programmeringsspråk för mig är bara ett verktyg. Jag använder dagligen 3 språk för att underlätta mitt arbete och för att även andra ska enkelt ska förstå den. Jag skriver aldrig mer än 300 rader i en C-fil exempelvis. Jag har kodat i 10 år. Framförallt Java.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Matlab mm är avsett att köras på en PC, inte inbäddade system.
Och jo, jag har hållit på med inbäddat de senaste 20-30-åren, typ.
Och jo, din erfarenhet och kunskap lyser i det du skriver här, dvs i princip obefintlig.
Användarvänligheten har ju inget med huruvida man skriver skitkod eller inte.
det är ju snarare GUIt som är viktigt ur den synpunkten.
Och jo, jag har hållit på med inbäddat de senaste 20-30-åren, typ.
Och jo, din erfarenhet och kunskap lyser i det du skriver här, dvs i princip obefintlig.
Användarvänligheten har ju inget med huruvida man skriver skitkod eller inte.
det är ju snarare GUIt som är viktigt ur den synpunkten.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Jag är mycket medveten om att MATLAB är till för PC. Men hade du läst så gör jag beräkningar i C och verifierar med MATLAB.
Jag kritiserade inte din kunskap eller ställde en fråga om den gällande hur många år du har programmerat. Du har säkert mycket erfarenhet inom inbyggda system, men allkunnig blir du inte.
Där har du fel! Användarvänligheten för rörande detta fall när jag uppmanade att använda C-koden, så handlar det om att koden ska vara så enkel som möjligt men samtidigt lösa problemet.
Testa koden och utför en beräkning. Allt man behöver är att ställa upp ett problem på formen \(Ax \le b\) där \(x \ge 0\) och \(c = A^Tb\).
Detta kallas linjärprogrammering. Jag använde tidigare kvadratisk programmering, men processorn kunde inte klara utav att beräkna kvadratisk programmering. Kvadratisk programmering är känt för att vara resurskrävande. Men linjärprogrammering är dock inte det.
Jag kritiserade inte din kunskap eller ställde en fråga om den gällande hur många år du har programmerat. Du har säkert mycket erfarenhet inom inbyggda system, men allkunnig blir du inte.
Där har du fel! Användarvänligheten för rörande detta fall när jag uppmanade att använda C-koden, så handlar det om att koden ska vara så enkel som möjligt men samtidigt lösa problemet.
Testa koden och utför en beräkning. Allt man behöver är att ställa upp ett problem på formen \(Ax \le b\) där \(x \ge 0\) och \(c = A^Tb\).
Detta kallas linjärprogrammering. Jag använde tidigare kvadratisk programmering, men processorn kunde inte klara utav att beräkna kvadratisk programmering. Kvadratisk programmering är känt för att vara resurskrävande. Men linjärprogrammering är dock inte det.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Så du kan köra 1-2 ggr/ sekund på en stm32f4 som du behöver för din process?Du KAN köra det på alla system och alla hårdvaror, om det inte är TomasL's hårdvara förståss.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Med den nya algoritmen så kan jag köra snabbare än 1-2 sekund. Testade den på en 446RE och då gjorde jag 3 stycken beräkningar + LCD + temperaturgivare + massa annat.
Att avgöra hur LCD:n uppdaterades som så var det ca 0.5 Hz.
Så här skapade jag den:
Skulle vara intressant om TomasL kunde utföra detta igenom att endast använda heltal. Det verkar ju vara "piece of cake" enligt han.
Sedan jämföra tiden det tog för att skriva koden och hur snabbare koden blev jämfört med min kod. Alltså en kedjeregel:
\(\frac{\text(Utvecklingstid Heltal)}{\text(Utvecklingstid Float)}*\frac{\text(Exe Heltal)}{\text(Exe Float)} =Vinst\)
Att avgöra hur LCD:n uppdaterades som så var det ca 0.5 Hz.
Så här skapade jag den:
Skulle vara intressant om TomasL kunde utföra detta igenom att endast använda heltal. Det verkar ju vara "piece of cake" enligt han.
Sedan jämföra tiden det tog för att skriva koden och hur snabbare koden blev jämfört med min kod. Alltså en kedjeregel:
\(\frac{\text(Utvecklingstid Heltal)}{\text(Utvecklingstid Float)}*\frac{\text(Exe Heltal)}{\text(Exe Float)} =Vinst\)
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Säg bara till om någon behöver hjälp med något reglerproblem.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Flyttalsaritmetik tar flera gånger större kiselarea och, värre, flera gånger mer energi än motsvarande heltalsoperationer. Dyrare på flera sätt alltså. Detta är helt otänkbart i många applikationer, typ sådana som driver teknikutvecklingen.
Dessutom är inte flyttal samma sak som matematikens reella tal. De har begränsningar och beteenden som man måste förstå om man vill vara säker på vad man gör. (Vanligaste exemplet är att summan av en flyttalsvektor kan bero på ordningen av vektorn. Flyttal kan göra att kod uppfattas som indeterministisk (vilket den såklart inte är, den är bara svåranalyserbar)).
Såklart skall man använda den teknik och metod som bäst passar situationen, och man kan inte hävda att det är uteslutande flyttal som gäller bara för att det är 2019. Det vore trångsynt.
Dessutom är inte flyttal samma sak som matematikens reella tal. De har begränsningar och beteenden som man måste förstå om man vill vara säker på vad man gör. (Vanligaste exemplet är att summan av en flyttalsvektor kan bero på ordningen av vektorn. Flyttal kan göra att kod uppfattas som indeterministisk (vilket den såklart inte är, den är bara svåranalyserbar)).
Såklart skall man använda den teknik och metod som bäst passar situationen, och man kan inte hävda att det är uteslutande flyttal som gäller bara för att det är 2019. Det vore trångsynt.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Exakt! Finns det en FPU...så varför inte använda den?
-
- Inlägg: 1397
- Blev medlem: 29 januari 2011, 21:06:30
- Ort: Lapplandet
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Största problemet med IEEE-flyttal är i mitt tycke att de är väldigt dåliga för att exakt representera tal som inte är bas-2.
T.ex. är 0,1 * 10 inte samma sak som att addera 0,1 tio gånger.
Vill man jämföra tal på ett pålitligt sätt måste man ta absolutvärdet av en subtraktion och se om resultatet är mindre än någon vald tolerans.
Men kan man leva med det och har en FPU tillgänglig så kör på.
Om det fungerar för dig är det ju helt irrelevant om processorn någon annan använder inte klarar av floats.
T.ex. är 0,1 * 10 inte samma sak som att addera 0,1 tio gånger.
Vill man jämföra tal på ett pålitligt sätt måste man ta absolutvärdet av en subtraktion och se om resultatet är mindre än någon vald tolerans.
Men kan man leva med det och har en FPU tillgänglig så kör på.
Om det fungerar för dig är det ju helt irrelevant om processorn någon annan använder inte klarar av floats.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
., hmm nej tack, det löser vi självaSäg bara till om någon behöver hjälp med något reglerproblem
Naturligtvis går det alldeles utmärkt att realisera alla typer av beräkningar med heltal, inget konstigt och inget svårt.Skulle vara intressant om TomasL kunde utföra detta igenom att endast använda heltal. Det verkar ju vara "piece of cake" enligt han.
Din formel för vinst visar hur okunnig du är.
För att köra med float, som du gör, behöver du en dyrare plattform.
Programutveckling är en "engångskostnad" och hamnar i balansräkningen som en tillgång och som ett IP, vilket skrivs av enligt gängse regler.
En mer kostsam plattform hamnar i resultaträkningen som en högre inköpskostnad, dvs lägre vinst.
Det är alltså i många fall bättre att lägga ned mer utvecklingstid, för att kunna använda en billigare HW-plattform, och på det sättet tjäna mer pengar.
Dock det hela beror ju på hur många exemplar systemet skall realiseras i.