[ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 29.08.06
Prihlásený: 18.12.15
Príspevky: 32
Témy: 16 | 16
NapísalOffline : 22.08.2009 10:53 | program pre diferenčnú rovnicu

Zdravím, ide asi o toto: Mám cca 15 miliónov vstupných vzoriek uložených v RAM sú to floaty - premenná X. Výstupné vzorky sú v premennej Y. Je to popis FIR filtra v časovej oblasti, klasická diferenčná rovnica. Premenná H, to sú koeficienty tej diferenčnej rovnice a teda filtra. Jednoduchý kód, ktorý som použil pre jadro výpočtu je asi takýto:

for(int k=t;k<n;k++) //n je pocet vzoriek, cca 15 milionov
{
for(int j=0;j<t;j++) // t je 2816
{
Y[k]+=X[k-j]*H[j];
}
}

Čo by sa dalo urobiť, aby to šlo rýchlejšie? Hore uvedený kód je čosi cez 40 milárd MAD inštrukcií pre daný počet vzoriek. Pamäte mám DDR2 800 a CPU ATHLON 64 X2 2,7 GHz AM2. Keďže sú to floaty, je využitých len 32bitov?Myslím, že niektoré SSE inštrukcie by využili 4 floaty a tak sa vlastne využije 128bitov. Neviem. Je to akýsi reference program oproti CUDA aplikácii. Vďaka za každý podnet.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.11.08
Prihlásený: 24.01.10
Príspevky: 25
Témy: 1 | 1
NapísalOffline : 24.08.2009 1:21 | program pre diferenčnú rovnicu

cau. zaujimavy vypocet.
aby ti to pocitalo rychlejsie, si si sam dal odpoved, cize ja len tie podnety

moje podnety: mas viac moznosti ako to urychlit (podla mna!).
1. ist k niekomu kto ma vykony pocitac s vykonnou grafikou
2. pouzit cuda soft ako si uz spomenul, ak mas grafiku od nvidie ktora to podporuje, nezaujimal som sa o to nikdy, ale cital som o tom uz viac krat, asi trepnem z brucha, ale zda sa mi ze 8800-ka s jadrom G80 ma vypoctovy vykon 10! nasobne vacsi ako nadpriemerny procesor. je kopec navodov ako dat cuda napriklad aj do VS.
3. spomenul si ram pamat. ak chces aby to spotrebovalo menej, jednoducho si sprav aby ti to napriklad po 10 000 vysledkov ulozilo na disk a dalej pokracovalo. windows si pokial viem (mozno sa mylim) sam rozdeluje procesy a prideluje ich jadram procesoru. dalo by sa spravit, aby ti jedno vlakno pocitalo s tym ze bude vyuzivat prve jadro procesora, a druhe vlakno s nejakym oneskorenim (napr. desat vypoctov) by ukladalo na disk, plus mazalo co uz ulozilo. tuto "Science fiction" teoriu mozno automaticky prideluje win, ale nemam znalosti ako to prinutit robit natvrdo.
4. ist za herrym potterom, on ma carovny prutik, na tuto metodu by som ale spoliehal najmenej. ;)

neviem ci som ti vobec trosicku pomohol, ale chcel si aj podnety.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 29.08.06
Prihlásený: 18.12.15
Príspevky: 32
Témy: 16 | 16
Napísal autor témyOffline : 24.08.2009 9:30 | program pre diferenčnú rovnicu

Diky za odpoved, ide o to, ze ja som uz CUDA pouzil. Mam dve 9800 GTX+. Kupil som ich ako investiciu do CUDA, kedze som sa tomu chcel venovat. Zo vsetkych doterajsich GPU mali tie unifikovane shadery najvyssi takt - 1836 MHz. A oproti inym grafikam bol pomer cena ku vykon velmi dobry. Dalo mi to dost roboty, kym som z toho vytrieskal 260 krat vyssi vypoctovy vykon oproti spominanej aplikacii. Navyse sa do toho rata aj cas kopirovania dat z videopamati do RAM! Cela aplikacia je tak urobena, ze najprv vsetky data natiahne do RAM a potom sa uz z HDD nic necita. Kedze mam viac paralelnych vstupov - kanalov - az 20, ktore na sebe nie su zavisle, urobil som primitivny multitasking. Som vytvoril 2 .exe subory, no kazdy pracoval nad inymi datami. Potom som ich spustil oba naraz, manualne. A otvorim task manager a obe CPU jadra na 100%. To bolo maximalne vyuzitie CPU. To iste som urobil pre GPU - 2 skompilovane execka, obe s rozdielnymi vstupnymi datami a urcene pre rozdielne GPU, co CUDA podporuje. Spustil som ich naraz a linearny narast vykonu, to ma potesilo. To co jedno CPU jadro pocitalo vyse 1,5 hod pre 300 milionov vstupnych vzoriek som mal na dvoch 9800 gtx+ za 8 sekund. V mojej apikacii vnasa vacsiu chybu do vysledku povaha filtra, nez nepresnost s typom float, ta vysla na cca 1e-6. Navyse G200 maju uz aj double precision, aj ked mensi pocet. Takze ja som chcel vylepsit uz len tu CPU aplikaciu.


 [ Príspevkov: 3 ] 


program pre diferenčnú rovnicu



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

program na kvadraticku rovnicu

v Assembler, C, C++, Pascal, Java

2

582

09.05.2011 9:54

petos

V tomto fóre nie sú ďalšie neprečítané témy.

Ako vyriesit rovnicu

v Assembler, C, C++, Pascal, Java

0

487

15.04.2018 11:19

Navi12

V tomto fóre nie sú ďalšie neprečítané témy.

Program pre strihanie a uprava videa pre zaciatocnika

v Video programy

10

3382

04.01.2024 16:10

mtr

V tomto fóre nie sú ďalšie neprečítané témy.

program pre zaciatky

v HTML, XHTML, XML, CSS

15

776

04.02.2014 15:37

mango

V tomto fóre nie sú ďalšie neprečítané témy.

program pre webkameru

v Ostatné programy

0

3054

26.01.2009 21:22

dsljohn

V tomto fóre nie sú ďalšie neprečítané témy.

PostgreSQL pre program

v Databázy

2

625

27.11.2011 11:02

borisko27

V tomto fóre nie sú ďalšie neprečítané témy.

Grafika pre program

v Assembler, C, C++, Pascal, Java

3

540

07.04.2011 20:15

hradecek

V tomto fóre nie sú ďalšie neprečítané témy.

Program pre HP

v Ostatné programy

0

489

20.05.2011 22:11

Krtko1992

V tomto fóre nie sú ďalšie neprečítané témy.

Program pre Lan

v Sieťové a internetové programy

4

549

05.03.2012 16:58

Denco1

V tomto fóre nie sú ďalšie neprečítané témy.

program pre projektantov

v Grafické programy

0

649

22.07.2012 23:45

alkex

V tomto fóre nie sú ďalšie neprečítané témy.

program pre pic PIC12F675

v Elektronika

0

668

17.09.2011 22:29

pic12345

V tomto fóre nie sú ďalšie neprečítané témy.

Program pre voice chat

v Ostatné programy

2

415

19.06.2016 14:48

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

Napalovaci program pre Ubuntu

v Operačné systémy Unix a Linux

19

2813

17.12.2006 0:46

johny128

V tomto fóre nie sú ďalšie neprečítané témy.

Aky program pre zaciaticnika

v Assembler, C, C++, Pascal, Java

3

495

21.03.2015 10:58

faraon

V tomto fóre nie sú ďalšie neprečítané témy.

Animačný program pre videoprojekciu

v Video programy

0

883

16.12.2009 18:41

quatermain

V tomto fóre nie sú ďalšie neprečítané témy.

Aky program pre kameru?

v Video programy

1

1013

12.04.2008 21:14

Mandy



© 2005 - 2024 PCforum, edited by JanoF