[ 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 Backend

2

620

09.05.2011 9:54

petos

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

Ako vyriesit rovnicu

v Backend

0

540

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

3808

04.01.2024 16:10

mtr

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

program pre zaciatky

v Frontend

15

851

04.02.2014 15:37

mango

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

program pre projektantov

v Grafické programy

0

695

22.07.2012 23:45

alkex

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

Program pre Lan

v Sieťové programy

4

611

05.03.2012 16:58

Denco1

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

program pre webkameru

v Ostatné programy

0

3102

26.01.2009 21:22

dsljohn

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

Grafika pre program

v Backend

3

620

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

540

20.05.2011 22:11

Krtko1992

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

PostgreSQL pre program

v Databázy

2

678

27.11.2011 11:02

borisko27

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

program pre tvorbu banera

v Frontend

10

4226

28.08.2007 13:20

shaggy

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

Program pre spravu informácii

v Ostatné programy

0

558

09.01.2010 1:03

aoccoa

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

Program pre multifunkcne zariadenie

v Ostatné programy

1

338

14.04.2013 9:06

jamal

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

program pre nahravanie obrazu

v Video programy

9

2205

17.11.2009 14:07

rytmy

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

Program pre voice chat

v Ostatné programy

2

466

19.06.2016 14:48

XOLOO

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

program pre pic PIC12F675

v Elektronika

0

729

17.09.2011 22:29

pic12345



© 2005 - 2026 PCforum, edited by JanoF