Inlägg

Inlägg som Erik_T har skrivit i forumet
Av Erik_T
Skrivet av heretic16:

Frågor:
För att få detta så optimalt som möjligt, så bör matrisen A ha så stor datatyp som möjligt, t.ex. uint64_t eller högre, om det finns.

1. Har alla moderna C kompilatorer stöd för uint64_t eller högre?
2. Vad händer om en hårdvara har inte stöd för 64-bit?
3. Har ARM stöd för 64-bit? Lite mera specifika processorer: Cortex-M3 och Cortex-M4
4. Vad är det absolut snabbaste sättet att utföra XOR multiplikation?

1. I praktiken har alla moderna C kompilatorer du kommer att komma i kontakt med stöd för uint64_t, men i teorin garanteras egentligen bara att stöd för (unsigned) long long finns, som måste vara minst 64 bitar bred.
Rent generellt så skall man aldrig använda datatyper med exakt storlek (såsom int8_t eller uint32_t) när man programmerar C om det inte är viktigt att datatypen har just exakt den storleken och ingen annan, eftersom det inte finns någon garanti att de datatyperna stöds av alla C kompilatorer.

2. Har hårdvaran inte stöd för 64-bitars tal så går det lite långsammare att göra uträkningar med 64-bitars tal eftersom det behövs fler instruktioner per beräkning då, men att göra det är inget problem

3. Beror på vilken version och implementation av ARM. För just de processorerna så orkar jag inte googla åt dig. Det bör du klara själv.

4. Jag är inte riktigt säker på att jag förstår vad du menar med "XOR multiplikation" eller vad du tror dig ha för nytta av det.

Av Erik_T

Här i Sverige så spelar din formella utbildningsnivå egentligen bara roll för ditt första jobb.
När du väl har några års arbetslivserfarenhet så väger det mycket tyngre än vilken utbildning du har gått.
Brist på kunskaper kan däremot vara ett hinder i karriären, men det är ju inte riktigt samma sak som formell utbildning.
(I en del andra länder så lägger de däremot betydligt större vikt vid just formell utbildning.)

Av Erik_T
Skrivet av simonthesaint:

Hej!

Har en gammal A500 jag vill koppla till bildskärm pc, men är osäker på vad som är bäst?

Har en rf-modulator till Amigan och har kopplat den med komposit till äldre tv utan problem. Skulle dock vilja koppla till min datorskärm som har hdmi, vga, displayport.

Vad är enklaste resp bästa sätten? Gissar att jag kommer få synkproblem, hur löser jag det?

Tack på förhand!

Kanske inte billigast eller enklast, men ett av de bättre sätten borde vara att skaffa en sån här:
http://www.ggsdata.se/index.php?page=Datorer/indivisionecsv3....

Av Erik_T
Skrivet av Söderbäck:

Annonsering som inte är riktad har minde möjlighet att bara nå ut till rätt personer. Så den är värd mindre. En hel del mindre antagligen.

Det är ju tanken bakom riktad reklam, men det är ju inte alltid den funkar bättre.
Det är väl åtskilliga som köpt en viss sak, och sedan får massor med (riktad) reklam om just den saken - som de inte är intresserade av att köpa eftersom de redan köpt den.

Riktad reklam gör också att annonsörerna missar chansen att visa folk reklam för prylar de inte visste att de ville ha.

Jag undrar om det finns någon pålitlig forskning om hur pass effektiv riktad reklam är jämfört med icke-riktad?

Av Erik_T
Skrivet av Leeo073:

Här har du en till länk angående systemvetenskapliga programmet, för mig känns det hela väldigt luddigt…
https://www.oru.se/utbildning/program/systemvetenskapliga-pro...

Mer än halva programmet ser ut att bestå av valbara kurser, så vad programmet innehåller kommer till stor del att bero på vad du väljer att läsa.

Av Erik_T

Tittar du på specifikationen för moderkortet så hittar du följande:

Så några USB-portar går direkt till chipsetet. Några till en separat USB-kontroller. Ingen är kopplad direkt till CPU:n.

Om du inte behöver USB 3.x hastigheterna, så använd en av de vanliga USB 2.0 portarna.

Av Erik_T
Skrivet av KAD:

Att gå från UEFI/BIOS till U-Boot/coreboot/UEFI på ARM kommer antagligen (och rätt ironiskt) orsaka ett mycket värre problem: Microsoft kommer se sin chans att införa secure boot till 100% och ta den. Bara att glömma andra OS på en sådan plattform antagligen. Processorn kommer innehålla stage0-bootloadern som kommer kryptografiskt validera stage1-bootloadern, och så vidare. Och sedan försvinner möjligheten att installera mjukvara på andra vägar än från Microsoft Store.

Den möjligheten med Secure Boot finns ju redan med UEFI.
Varför skulle det bli annorlunda på ARM än det är på x86? Det är ju knappast Microsoft som kommer att tillverka hårdvaran eller bestämma vad som finns i firmware.

Av Erik_T
Skrivet av JasBC:

Det "fungerade rätt bra" för att alla X86-baserade datorer hade en BIOS kopierad och vidareutvecklad från IBM:s BIOS från den originella IBM PC:n från 1981 och det gällde ända fram tills för bara några år sedan, det är bara nyligen som det börjat släppts nya chipp utan full kompatibilitet med 5150:s BIOS-rutiner.

Och andra (icke IBM-kompatibla) system hade andra lösningar.
Så det går bevisligen alldels utmärkt utan UEFI.

Någon slags bootloader behövs ju, men om man tittar på hur många olika system som Linux fungerar på, så är det inte så himla petigt vilken som används.

Av Erik_T
Skrivet av JasBC:

Brist på stöd för UEFI är ett väldigt stort problem då det är just den industri standardiserade-UEFI:n i datorerna som tillåter arbiträra handlingar som att byta grafikkort eller hårddisken utan större kompatibilitetsproblem, både på hårdvaru-sidan och för programvara. Utan UEFI är vi tillbaka på ruta ett, på samma nivå som de första IBM-klonerna som minst sagt hade brokigt stöd för...allting.

Första versionen av UEFI kom inte förrän 2006. Då hade persondatorer av olika slag redan funnits i tre decennier, och IBM PC i 25 år.
Saker och ting fungerade rätt bra även innan UEFI kom. Inklusive att byta grafikkort eller hårddisk.
De kompatibilitetsproblem som fanns under de tidiga åren låg främst på hårdvarusidan snarare än mjukvara/firmware.

För övrigt, vilka processorer har inbyggt stöd för UEFI? Inga vanliga i alla fall. Det är UEFI som har stöd för x86, inte tvärtom.
Samma för ARM.

Av Erik_T

En MAC-adress som börjar med 60:02:b4 indikerar en nätverkskontroller tillverkad av Wistron NeWeb Corporation, som gör allehanda trådlösa prylar.
Kan det vara någon "smart hem" pryl?

Kör du trådat eller trådlöst mellan dina enheter?

Av Erik_T
Skrivet av JasBC:

Tja, det blir inga ARM-chip för konsumenter...ARM har inget inbyggt stöd för UEFI och då ska man ha i åtanke att UEFI för X86 redan är ett makabert hopkok. Utan stöd för UEFI är ARM-chip döda i vattnet för konsumenter då det är hela grejen som möjliggör inte bara sammanfogningen av olika delar men också installationen av arbiträra operativsystem.

Konsumenter, och datorer, klarade sig utan UEFI i många år. Någon form av bootloader behövs, men det finns många varianter av sådana utöver UEFI.
Så brist på stöd för UEFI är ett mindre problem. Om det ens är ett problem.

Av Erik_T
Skrivet av heretic16:

Nä. Jag håller inte med om detta svar.
Folk har jobbat på att optimera en kompilator i över 30 år och då skall det finnas ett sådant svar på hur mycket dom optimerar.

Det finns många kompilatorer. De optimerar olika saker olika bra. Och är överhuvudtaget olika bra på att optimera.
Hur mycket de försöker beror på vilka flaggor de ges. Hur bra de lyckas beror på hur källkoden ser ut.

Så en kompilator optimerar någonstans mellan ingenting alls och väldigt mycket.

För övrigt, vilken måttenhet vill du ha svar i?

Av Erik_T
Skrivet av DevilsDad:

Förresten, har du en förklaring till varför den tighta integrationen mellan CPU och RAM leder till högre bandbredd men oförrändrad latens? Min naiva bild av det är att det borde leda till lägre latens, vilket i sin tur medför högre bandbredd.

Latensen beror mest på hur snabbt minneskretsarna kan slå upp rätt minnesaddress och plocka fram data därifrån. Det är nästan enbart själva minneskretsarna som påverkar hur låg latens man kan få, inte kopplingen mellan dem och CPU eller minneskontrollern i CPU:n.

Bandbredden däremot påverkas direkt av klockfrekvensen, och det är lättare att få en stabil signal med hög frekvens ju färre olika kontakter som den behöver gå genom.

Att minska latensen ger bara marginellt bättre bandbredd. Vilket som har störst påverkan på prestandan, latens eller bandbredd, beror mycket på hur mönstret för minnesåtkomst ser ut.

En intressant observation som har gjorts är att det finns många tricks som kan dölja hög latens (användandet av en cache är ett av de mer uppenbara), men otillräcklig bandbredd är svårt att göra något åt.

Av Erik_T
Skrivet av Fikap4us:

Dom måste ju faktiskt ha skickat fakturan för att man ska vara tvungen att betala.

Nä. De behöver inte skicka en enda faktura för att du skall vara betalningsskyldig.

Det räcker med att det finns någon slags avtal mellan er som säger att du skall betala något. Resten är, i princip, upp till dig att lösa.

Av Erik_T

Jag har bara beställt med hemleverans från Elgiganten en gång, med Bring, och då fungerade allt som det skulle.
När jag beställde fick jag en länk där jag kunde spåra leveransen, och när den överlämnades till Bring, som meddelade via SMS ungefär när de skulle komma.
Att det råkade fungera för mig utesluter ju inte att det kan strula för andra, men du borde väl fått något sätt att följa vad som händer med leveransen?

Av Erik_T
Skrivet av heretic16:

Alltså om jag definierar en printf-funktion så kommer min kompilator att använda denna istället?
Jag undrar hur printf fungerar i C, den verkar ha oändligt med argument, trots att C måste ha fixerade argument.

Du kan ha variabelt antal argument till en funktion i C. Det är helt standard och har fungerat sedan tidernas begynnelse, eller näst intill.
printf(), scanf() m.fl. använder standard mekanismen för variabla antal argument.

Du kan använda din egen printf() i C program, men du måste vara väldigt petig med vilka headers du inkluderar och hur du länkar för att det skall fungera korrekt. Rekommenderas inte om du kan undvika det.

Av Erik_T

Om det inte känns iallafall litegranna roligt hittills så har du nog valt fel och bör ta en ny funderare på vad du vill göra, och använda studiemedlet för någon annan utbildning.

Jag vet inte hur det ser ut på just ditt program, men på civilingenjörsutbildningar i allmänhet är det mycket matematik i början.
Delvis för att, precis som du är inne på, att sålla bort studenter tidigt snarare än sent, men också för att man faktiskt behöver de där matematikkunskaperna i många senare kurser.
Kommer man efter med matematiken i början så blir det lätt väldigt jobbigt på senare kurser när man dels behöver läsa in den där matten man inte fattade första vändan, samtidigt som man skall försöka förstå själva kursen.
Detsamma gäller flera andra ämnen - mycket teori i början, men den teorin behövs i de mer praktiska kurserna senare.

Projekt och liknande kommer du antagligen att se mer av ju längre utbildningen fortskrider.

Att ogilla en och annan kurs är helt normalt, men de flesta som läser en civilingenjörsutbildning är intresserade av kurserna de läser - åtminstone av en hel del av kurserna.

Av Erik_T

Ju fler minnesmoduler man har per minneskanal desto svårare är det att köra med höga frekvenser och låga timings på minnena.
Så är man intresserad av att få ut högsta prestanda ur minnena skall man bara ha en minnesmodul per minneskanal. (På de allra flesta konsumentmoderkort så innebär det max två minnesmoduler totalt.)
Anledningen har att göra med att det är mer "tungdrivet" att skicka elektriska signaler till två moduler samtidigt än till bara en.

Dock så skall man ju komma ihåg att om man använder så mycket minne att systemet behöver swappa ut till disken, då blir det vanligtvis bättre prestanda med mer minne, även om minneshastigheten skulle behöva sänkas något.

Av Erik_T

Max längd för en ethernet kabel är 100m, så att dra en sådan direkt lär inte fungera.
Att skarva med en switch på mitten kommer att fungera, men då behöver du någonstans att sätta den, och få ström till den.

Fiber borde fungera, men då behöver du ju skaffa utrustning för sådant.

Är det fri sikt kan du köra en wifi-brygga med riktade antenner.

Av Erik_T

Om inte resten av dina komponenter är ovanligt strömhungriga så kommer det att fungera fint med ett 450W nätagg.