-
Data: 2011-11-03 07:23:58
Temat: Re: na 4rech procesorach
Od: " " <f...@N...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Robert Winkler <n...@n...org> napisał(a):
> > nie wiem co nazywasz pamiecia ekranu, ale ja renderuje
> > do zwyklej tablicy bajtow (konkretnie jest to wskaznik jaki
> > zwraca funkcja createDibSection, ale jest to raczej zwykla tablica
> > ramu tyle ze zaalokowana wewnetrznie przez winde, pozniej dopiero
> > to sie blituje do pamieci video);
>
> Nie podajesz źródeł więc skąd mamy wiedzieć
> że robisz to z wykorzystaniem bitmapy utworzonej poza ekranem.
> Załóz project na przykład na github i wrzuć źródła.
>
> > czy takie pisania do zwyklej tablicy (kazdy watek do swojej czesci)
> > tez trzeba synchronizowac? byloby to glupie i niedobre
>
> Jesli jestes absolutnie pewiem ze jakiś fragment bitmapy
> nie będzie znajdował się jednocześnie w cache dróch różnych rdzeni
> (procesorów)
> to nie potrzebujesz synchronizacji.
> Nie jest to jednak pewne, cache nie pracuje na poziomie pojedyńczych
komórek
> pamięci
> ale kilkunasto bajtowych linii.
> (w niektórych procesorach to nawet 512 bajtów, nie jest to jednak żaden
> procesor rodziny x86)
>
> btw.
> Skoro renderujesz to do bitmapy stworzonej poza pamięcią ekranu
> to co za problem stworzyć 4 niezależne bitmapy,
> po jednaj dla kazdego wątku.
> Każda z nich zawierała by fragment całości (1/4 wysokości)
> po zakończeniu wszystkich wątków przepisałbyś je BitBlt-em
> do jednej bitmapy, podając odpowiedno parametr Y gdzie ma być ona skpiowana.
>
> Widziałeś jak wygląda raytracing na maszynie z 80-ma równoległymi wątkami?
> (4 Xeony po 10 rdzeni każdy plus HT żeby podwoić liczbe wątków)
> http://www.youtube.com/watch?v=zbokPe4_-mY
///////
co do zrodel :
podawalem kluczowe kawalki zrodel co prawda w roznych
postach rozrzuconych na grupach (podzial kodu na pliki, jak
wyglada u mnie glowna petla, jak wygladaja same blity tez
(to akurat dawniej), jak uzywam query performance countera
do mierzenia czasu, jak ogolnie wyglada moja filozofia
agentowa, sam kawalek obliczania koloru (toporny i nieladny
co prawda) itd...) podam zreszta jeszcze na pewno inne kawalki
w miare mojego nimi zainteresowania (bo zarowno jak jestem
z czegos niezadowolony jak i zadowolony to lubie to
porozwazac i omowic w poscie);
Nie za bardzo chce podac cale zrodla gotowe do skompilowania
po prostu kliknieciem bo tak jak tomasz biskup kiedys
powiedzial: nie chce by ktos to pogarszal i przerabial na
niepodobajace mi sie sposoby (nie mowie ze moje zrodla sa
specjalnie dobre - takie sobie); Ogolnie jak ktos jest
zainteresowany to moge powiedziec jak cos robie i nawet
przekleic (nawet wypracowane) kawalki kodu ale ten ktos
niech lepiej pozniej swoj program napisze po swojemu. :}
i najlpeiej przylaczy sie do dyskusji i wniesie cos od
siebie do zagadnienia;
////////
co do meritum:
moge zrobic czetery pixelbufory i blitowac 4 razy ale
jest to mz troche nienaturalne; kawalki sa rozlaczne
wiec z normalnymi konfliktami nie powinno byc
problemu; czy ta bitmapa/pixelbufor jest alokowana do
jak wyrownanego adresu to nie wiem... sama ta bitmapa
jest wyrownana w poziomie do 4 pixeli (kazdy pixel
4 bajty) wiec o ile poczatek jest wyrownany do 16B lub
lepiej to kawalki tez sa wyrownane do 16B (jest jakis
sposob by wyrownywac to co jest alokowane przez malloc
np? pamietam z jednej ksiazki ze kriss kasperski wyrownywał
kiedys do 4096 (granicy sttrony czy cos takiego) i chyba
dawala to duze przyspieszenia; nie wiem jak z tym 'zachodzeniem
cacheow' i na czym to mialoby polegac - mz jak jeden watek
przelacza milion razy na sekunde komorke 0x11111111
a drugi 0x11111112 (nawet w tej samej lini cache) to chyba
nie powinno byc problemow z przeklamaniami - choc pewnie
moglyby byc opoznienia; Co do samego pisania do pamieci
ekranu to nie wiem czy jest to mozliwe - raczej nie;
ta pamiec nie jest zwyklym ramem (nie wiem wogole jaka nazwa
tu jest adekwatna VRAM?) i nie wiem czy mozna dostac wskaznik
do niej raczej nie - zaluje ze nie wiem jak komunikowac
sie z karta na poziomie drivera; na poziomie obslugi drivera
to jest na pewno jakies api a na poziomie wnetrza samego
drivera to nie wiem jak ta komunikacja miedzy CPU+RAM a GPU+VRAM
idzie czy przez jakis 'dzielony ram' czy przez te asemblerowe
'out'
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 04.11.11 02:32 Wiktor S.
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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
Najnowsze wątki
- 2024-12-01 Pijani kierowcy
- 2024-12-01 "Chciałem zamówić kurs tym"
- 2024-11-30 Windykatorzy ścigają spadkobierców z mandat nieboszczyka za przekroczenie prędkości???
- 2024-11-30 Łódź => Technical Artist <=
- 2024-11-30 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-30 Warszawa => Microsoft Dynamics 365 Business Central Developer <=
- 2024-11-30 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-30 Zielona Góra => Senior PHP Symfony Developer <=
- 2024-11-30 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-30 Lublin => Spedytor międzynarodowy <=
- 2024-11-30 Warszawa => Mid IT Recruiter <=
- 2024-11-30 Warszawa => Fullstack Developer <=
- 2024-11-30 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-30 Warszawa => System Architect (background deweloperski w Java) <=
- 2024-11-30 Katowice => Key Account Manager (ERP) <=