-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!no
t-for-mail
From: Michoo <m...@v...pl>
Newsgroups: pl.comp.programming
Subject: Re: programował ktoś na taki sprzęt?
Date: Fri, 01 Mar 2013 13:56:42 +0100
Organization: Netia S.A.
Lines: 57
Message-ID: <kgq91k$u7t$1@mx1.internetia.pl>
References: <6...@g...com>
<kgo7p0$kcn$1@node2.news.atman.pl>
<a...@g...com>
NNTP-Posting-Host: 83.238.197.12
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1362143092 30973 83.238.197.12 (1 Mar 2013 13:04:52 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Fri, 1 Mar 2013 13:04:52 +0000 (UTC)
In-Reply-To: <a...@g...com>
X-Tech-Contact: u...@i...pl
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.11) Gecko/20121123
Icedove/10.0.11
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.comp.programming:202111
[ ukryj nagłówki ]On 01.03.2013 11:14, M.M. wrote:
>> To cierpi nawet, jeśli są rozgałęzienia programu.
> To niedobrze :(
To jest po prostu inny sprzęt i go się inaczej programuje. Na klasycznym
procesorze sporo przypadków opiera się o różne formy pętli, na GPU na
podział danych na jednorodne bloki i wykonywanie na nich takich samych
operacji.
>
>
>> Bardzo dobrze. Ale w swoich zadaniach, to nie jest uniwersalny
>> procesor do wszystkiego.
>
>
>> Z lekkim przymrożeniem oka możesz patrzeć na to jak na
>> koprocesor, tylko on nie dostaje do przemnożenia
>> dwa double, tylko dwie macierze zespolone po 200MB,
>> albo jakąś funkcję do policzenia w tysiącach punktów naraz.
> Myślę o tym głównie pod kątem czegoś podobnego do symulowanego
> wyżarzania, czyli w kółko liczenie wartości funkcji. Niestety
> ta funkcja, choć nie jest funkcją rekurencyjną, ma
> dużo ifów.
Wszystko zależy od przypadku - czasami lepiej napisać if, czasami lepiej
zamienić coś pokroju (to tylko przykład)
if(b>10)
a = 123*b*y;
else if(b<-10)
a = 321*b*x;
else
a = b*x*y;
na
a = (b>10)*123*b*y + (b<-10)*321*b*x + (!(b>10))*(!(b<-10))*b*x*y
>
> Może to jednak kwestia asemblera? Nie wiem jak jest dzisiaj.
> Ale jakieś kilkanaście lat temu, jak przepisałem niechlujnie
> procedurę w asemblerze, to działała 3 razy szybciej niż
> skompilowana kompilatorem C/C++.
Przez kilkanaście lat naprawdę sporo się zmieniło to raz. Po drugie na
dzisiejsze procesory czasami lepiej jest wygenerować "ciaśniejszy" kod,
niż "szybszy" bo zaoszczędzenie na dostępach do cache potrafi dawać
kilkukrotny boost. W języku pokroju C++ wystarczy zmienić atrybuty
dotyczące optymalizacji, w asm musisz przepisywać ;) W ogóle asm poza
bardzo rzadkimi przypadkami to strata czasu - liczy się doby algorytm a
go im wyżej poziomowy język tym szybciej zapisać, przetestować,
tuningować. Mikrooptymalizacje to robota na sam, sam koniec.
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 01.03.13 14:26 Edek Pienkowski
- 02.03.13 10:51 Roman W
- 02.03.13 16:59 M.M.
- 02.03.13 17:27 Edek Pienkowski
- 02.03.13 18:06 M.M.
- 02.03.13 18:34 Edek Pienkowski
- 02.03.13 18:51 firr kenobi
- 02.03.13 18:51 firr kenobi
- 02.03.13 19:10 M.M.
- 03.03.13 01:55 Roman W
- 03.03.13 10:50 firr kenobi
- 03.03.13 10:51 firr kenobi
- 03.03.13 10:51 firr kenobi
- 03.03.13 19:24 M.M.
- 03.03.13 19:29 M.M.
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-13 256 świadków nie ma racji
- 2024-07-11 Tokarze CNC czyli ciężkie życie prototypiarza
- 2024-07-12 Zgody na przetwarzanie danych
- 2024-07-13 IObit Uninstaller Pro 13.6.0.5 Multilingual: Installation Guide
- 2024-07-12 stare graty młode kozy
- 2024-07-11 8080
- 2024-07-13 Przyłącze dolne grzejnika
- 2024-07-13 IObit Uninstaller Pro 13.6.0.5 Multilingual Overview
- 2024-07-12 Czym wykonać otwór fi 100 w betonie komórkowym?
- 2024-07-12 Warszawa => Senior Rust Software Engineer <=
- 2024-07-12 Warszawa => Business Unit Manager (Recruitment Business) <=
- 2024-07-12 Warszawa => Head of WMS Competence Center for IT&D Contract Logistics
- 2024-07-12 Warszawa => Head od WMS Competence Center dla IT&D (Blue Yonder) <=
- 2024-07-12 Kraków => Ruby Backend Developer <=
- 2024-07-12 Warszawa => UX/UI Designer <=