-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!p
ostnews.google.com!j14g2000yqm.googlegroups.com!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: matlab taki wydajny?
Date: Sun, 24 Jan 2010 22:45:04 -0800 (PST)
Organization: http://groups.google.com
Lines: 83
Message-ID: <3...@j...googlegroups.com>
References: <5...@a...googlegroups.com>
<6...@1...googlegroups.com>
<9...@k...googlegroups.com>
<7...@g...googlegroups.com>
<f...@c...googlegroups.com>
<2...@n...googlegroups.com>
NNTP-Posting-Host: 82.210.189.188
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1264401904 7444 127.0.0.1 (25 Jan 2010 06:45:04 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Mon, 25 Jan 2010 06:45:04 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: j14g2000yqm.googlegroups.com; posting-host=82.210.189.188;
posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7)
Gecko/20091221 Firefox/3.5.7 (.NET CLR
3.5.30729),gzip(gfe),gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:184620
[ ukryj nagłówki ]On 24 Sty, 11:23, thrunduil <t...@w...pl> wrote:
> On 23 Sty, 10:11, Mariusz Marszałkowski <m...@g...com> wrote:
>
> > Przy mnozeniu macierzy wierszowej przez prostokatna juz wiem
> > na 100% ze matlab nie jest o zaden rzad wielkosci szybszy, tylko
> > jest dwa razy wolniejszy od procedury napisanej doslownie na
> > kolanie w C++.
>
> to bylo sprawdzane czy sa to tylko domysly?
>
> bo podany kod mnozenia macierzy byl >10x wolniejszy od matlaba.
To byl moj kod wiecz czuje sie wywolany do usprawiedliwien.
Tamten kod byl napisany przed odrobieniem lekcji i skakal
po macierzy nie w tej kolejnosci, w jakiej lubi to cache.
Napisalem trzy wersje mnozenia poziomego wektora przez macierz
naiwna ze zla kolejnoscia petli, naiwna z dobra kolejnoscia
i wariacje na temat blokowego mnozenia macierzy.
n=960. Wszystko, program w cpp i matlab dostawaly piorytet real time.
naiwny, złe petle 51.345
naiwny, ok 7.923
blok32 8.705
blok16 6.865
blok8 4.886
blok4 5.476
MATLAB 8.899
tic,for j=1:960,w=v*M;end;toc
Mam nadzieje, ze tym razem nie strzelilem babola;)
void mnoz (double *w,double *M,double *v,int n)
{//petle ok
for (int i=0;i<n;i++)
{
v[i]=0;
}
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++)
v[j]=w[i]*M[n*i+j];
}
}
void mnoz_naiw(double *w,double *M,double *v,int n)
{//zle petle
for (int i=0;i<n;i++)
{
v[i]=0;
}
for (int j=0;j<n;j++)
for (int i=0;i<n;i++)
v[j]=w[i]*M[n*i+j];
}
template<class T, int SN>
void blokmnoz (T *w,T *M,T *v,int n)
{
for (int i=0;i<n;i++)
{
v[i]=0;
}
for (int i=0;i<n;i+=SN)
{
for (int j=0;j<n;j+=SN)
{
for (int ii=i;ii<i+SN;ii++)
{
for (int jj=j;jj<j+SN;jj++)
v[jj]=w[ii]*M[n*ii+jj];
}
}
}
}
pozdrawiam
bartekltg
Następne wpisy z tego wątku
- 03.02.10 17:23 Adam Piotrowski
- 03.02.10 21:19 Mariusz Marszałkowski
- 04.02.10 09:31 Roman Werpachowski
- 04.02.10 10:40 Adam Przybyla
- 05.02.10 03:43 Mariusz Marszałkowski
- 05.02.10 06:53 bartekltg
- 05.02.10 06:55 bartekltg
- 05.02.10 16:54 Mariusz Marszałkowski
- 05.02.10 17:17 Mariusz Marszałkowski
- 05.02.10 21:58 bartekltg
- 06.02.10 00:26 Mariusz Marszałkowski
- 06.02.10 01:26 bartekltg
- 06.02.10 05:50 Mariusz Marszałkowski
- 06.02.10 22:22 Roman Werpachowski
- 08.02.10 21:38 bartekltg
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-05-14 Będziemy się znowu zrzucać na elektryki...
- 2024-05-14 Pompa ciepla Kaisai
- 2024-05-14 Przyłączenie działki do sieci elektrycznej
- 2024-05-14 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2024-05-14 Kraków => SAP WM Consultant / Execution <=
- 2024-05-14 Wrocław => Business Development Manager - obszar bezpieczeństwa IT <
- 2024-05-14 Poznań => Interactive/Experience Designer <=
- 2024-05-14 Poznań => Interactive/Experience Designer <=
- 2024-05-14 Białystok => ERP Implementer <=
- 2024-05-14 Przerabianie na Indonezje
- 2024-05-14 Kielce => UX/UI Designer <=
- 2024-05-14 Warszawa => Sales Representative for Outsourcing Services <=
- 2024-05-14 Prowadzenie działalności za kogoś - to legalne?
- 2024-05-14 nieletni na plaży naturystów
- 2024-05-13 Działalność nierejestrowana/definicja sprzętu elektronicznego/misie i kolejki