Thread View: pl.comp.lang.c
13 messages
13 total messages
Started by Borneq
Tue, 04 Oct 2016 18:06
Jaki dobry profiler?
Author: Borneq
Date: Tue, 04 Oct 2016 18:06
Date: Tue, 04 Oct 2016 18:06
4 lines
1025 bytes
1025 bytes
Używam LTProf, płatny, podoba mi się interfejs ale ma ograniczenie: profiluje jedynie funkcje, a w trybie release funkcje są rozwijane. Potrzebuję dokładniejszego, który profilował by na poziomie pojedynczej instrukcji
Re: Jaki dobry profiler?
Author: Sebastian Biały
Date: Tue, 04 Oct 2016 18:31
Date: Tue, 04 Oct 2016 18:31
8 lines
1220 bytes
1220 bytes
On 2016-10-04 20:06, Borneq wrote: > Potrzebuję dokładniejszego, który profilował by na poziomie pojedynczej > instrukcji http://developer.amd.com/tools-and-sdks/archive/compute/amd-codeanalyst-performance-analyzer/ Nie działa lub działa bardzo źle z procesorami Intela. Czy coś się poprawiło ostatnio - nie wiem, nie używam dłuższą chwilę.
Re: Jaki dobry profiler?
Author: Borneq
Date: Tue, 04 Oct 2016 21:22
Date: Tue, 04 Oct 2016 21:22
9 lines
1393 bytes
1393 bytes
W dniu 04.10.2016 o 20:31, Sebastian Biały pisze: > Nie działa lub działa bardzo źle z procesorami Intela. Czy coś się > poprawiło ostatnio - nie wiem, nie używam dłuższą chwilę. Mam procesor Intela i3; na początku trochę problemów bo instalacja została na pasku na dole, ale zabiłem przez wylogowanie. Jest niesamowity, nie tylko każda linia kodu ale każda instrukcja! i nawet specjalnie nie zwolnił na testowym programie. Testuję dla VC++, nie wiem czy działa na GCC pod Windows (MinGW)
Re: Jaki dobry profiler?
Author: Borneq
Date: Tue, 04 Oct 2016 21:25
Date: Tue, 04 Oct 2016 21:25
4 lines
1071 bytes
1071 bytes
W dniu 04.10.2016 o 23:22, Borneq pisze: > i nawet specjalnie nie zwolnił na testowym programie. A może jednak zwolnił, tylko wcześniej zabiłem
Re: Jaki dobry profiler?
Author: Borneq
Date: Wed, 05 Oct 2016 00:19
Date: Wed, 05 Oct 2016 00:19
14 lines
1634 bytes
1634 bytes
W dniu 04.10.2016 o 23:25, Borneq pisze: > W dniu 04.10.2016 o 23:22, Borneq pisze: >> i nawet specjalnie nie zwolnił na testowym programie. > > A może jednak zwolnił, tylko wcześniej zabiłem To co się okazało: w działaniach na bitach, gdzie adres wyliczam przez bit/8, VC++ nawet w release nie potrafi zamienić /8 na >>3, ale może dlatego że przy optymalizacjach musi być dokładnie ten sam wynik a liczba bitów była tu całkowita a nie naturalna więc wywołuje procedurę. Zmiana ta przyśpieszyła znacznie działanie testowego programu sita Erastotenesa na bitach. Trzeba pamiętać że kompilatory często nie optymalizują dzielenia przez stała 2^n
Re: Jaki dobry profiler?
Author: Borneq
Date: Wed, 05 Oct 2016 01:17
Date: Wed, 05 Oct 2016 01:17
8 lines
1260 bytes
1260 bytes
W dniu 04.10.2016 o 23:25, Borneq pisze: > W dniu 04.10.2016 o 23:22, Borneq pisze: >> i nawet specjalnie nie zwolnił na testowym programie. > > A może jednak zwolnił, tylko wcześniej zabiłem CodeXL ma inny sposób profilowania - błyskawicznie działa, nie trzeba długo czekać na zakończenie procesu
Re: Jaki dobry profiler?
Author: slawek
Date: Wed, 05 Oct 2016 07:19
Date: Wed, 05 Oct 2016 07:19
8 lines
1332 bytes
1332 bytes
On Wed, 5 Oct 2016 02:19:23 +0200, Borneq <borneq@antyspam.hidden.pl> wrote: > To co się okazało: w działaniach na bitach, gdzie adres wyliczam przez > bit/8, VC++ nawet w release nie potrafi zamienić /8 na >>3, ale może Bo najnowsze procesory mogą szybko dzielić. Zobacz ile taktów co robi np. nowy I7.
Re: Jaki dobry profiler?
Author: Sebastian Biały
Date: Wed, 05 Oct 2016 17:06
Date: Wed, 05 Oct 2016 17:06
17 lines
1843 bytes
1843 bytes
On 2016-10-04 23:22, Borneq wrote: >> Nie działa lub działa bardzo źle z procesorami Intela. Czy coś się >> poprawiło ostatnio - nie wiem, nie używam dłuższą chwilę. > Mam procesor Intela i3; na początku trochę problemów bo instalacja > została na pasku na dole, ale zabiłem przez wylogowanie. > Jest niesamowity, nie tylko każda linia kodu ale każda instrukcja! W tym problem. Procesory AMD mają bardzo dokładnie okreslony profil instrukcji we współdziałaniu z cache. Ten profiler pokazuje (pokazywał?) głupoty na Intelach. Należy więc podchodzić z rezerwą. > i nawet specjalnie nie zwolnił na testowym programie. Bo to profiler ktory nie instrumentuje tylko przerywa. To jest zaleta (mierzy razem z wywołaniami obcych biblitek) ale i wada (uszkadza cache procesora i program zachowuje się inaczej jesli chodzi o prędkosc na poziomie instrukcji).
Re: Jaki dobry profiler?
Author: M.M.
Date: Wed, 05 Oct 2016 22:57
Date: Wed, 05 Oct 2016 22:57
22 lines
2371 bytes
2371 bytes
On Wednesday, October 5, 2016 at 7:06:18 PM UTC+2, Sebastian Biały wrote: > On 2016-10-04 23:22, Borneq wrote: > >> Nie działa lub działa bardzo źle z procesorami Intela. Czy coś się > >> poprawiło ostatnio - nie wiem, nie używam dłuższą chwilę. > > Mam procesor Intela i3; na początku trochę problemów bo instalacja > > została na pasku na dole, ale zabiłem przez wylogowanie. > > Jest niesamowity, nie tylko każda linia kodu ale każda instrukcja! > > W tym problem. Procesory AMD mają bardzo dokładnie okreslony profil > instrukcji we współdziałaniu z cache. Ten profiler pokazuje (pokazywał?) > głupoty na Intelach. Należy więc podchodzić z rezerwą. > > > i nawet specjalnie nie zwolnił na testowym programie. > > Bo to profiler ktory nie instrumentuje tylko przerywa. To jest zaleta > (mierzy razem z wywołaniami obcych biblitek) ale i wada (uszkadza cache > procesora i program zachowuje się inaczej jesli chodzi o prędkosc na > poziomie instrukcji). By musiał w pełni symulować daną konfigurację sprzętową, aby nie uszkadzać. Pozdrawiam
Re: Jaki dobry profiler?
Author: Borneq
Date: Thu, 06 Oct 2016 11:58
Date: Thu, 06 Oct 2016 11:58
11 lines
1580 bytes
1580 bytes
W dniu 05.10.2016 o 19:06, Sebastian Biały pisze: > Bo to profiler ktory nie instrumentuje tylko przerywa. To jest zaleta > (mierzy razem z wywołaniami obcych biblitek) ale i wada (uszkadza cache > procesora i program zachowuje się inaczej jesli chodzi o prędkosc na > poziomie instrukcji). W każdym razie nie udał się mój sposób profilowania: rdtsc pomiędzy każdą instrukcją maszynową, wraz ze wzrostem ilości pętli zmienia się odczyt na coraz mniejsze ilości i wychodzi że pomiędzy instrukcjami jest tak samo mało. Ten sposób może by zadziałał na 386 ale tutaj mamy potok instrukcji.
Re: Jaki dobry profiler?
Author: Wojciech Muła
Date: Thu, 06 Oct 2016 16:56
Date: Thu, 06 Oct 2016 16:56
16 lines
2054 bytes
2054 bytes
On Wednesday, October 5, 2016 at 9:19:32 AM UTC+2, slawek wrote: > On Wed, 5 Oct 2016 02:19:23 +0200, Borneq <borneq@antyspam.hidden.pl> > wrote: > > To co się okazało: w działaniach na bitach, gdzie adres wyliczam > przez > > bit/8, VC++ nawet w release nie potrafi zamienić /8 na >>3, ale może > > Bo najnowsze procesory mogą szybko dzielić. Zobacz ile taktów co robi > np. nowy I7. Dzielenie to kilkanaście-kilkadziesiąt cykli opóźnienia versus 1 cykl dla przesunięcia bitowego. Więc to nie jest "szybko", lecz "dramatycznie wolno, unikaj jeśli możesz". w.
Re: Jaki dobry profiler?
Author: Sebastian Biały
Date: Thu, 06 Oct 2016 17:17
Date: Thu, 06 Oct 2016 17:17
10 lines
1625 bytes
1625 bytes
On 2016-10-06 00:57, M.M. wrote: >> Bo to profiler ktory nie instrumentuje tylko przerywa. To jest zaleta >> (mierzy razem z wywołaniami obcych biblitek) ale i wada (uszkadza cache >> procesora i program zachowuje się inaczej jesli chodzi o prędkosc na >> poziomie instrukcji). > By musiał w pełni symulować daną konfigurację sprzętową, aby nie uszkadzać. Z grubsza to nie jest możliwe. Wywołania biblitek systemowych i kernela nie da się instrumentować ani "naprawiać" cache po przerwaniu. Rozlatują się subtelne zależnosci miedzywątkowe itd.
Re: Jaki dobry profiler?
Author: M.M.
Date: Fri, 07 Oct 2016 19:11
Date: Fri, 07 Oct 2016 19:11
16 lines
2261 bytes
2261 bytes
On Thursday, October 6, 2016 at 7:17:38 PM UTC+2, Sebastian Biały wrote: > On 2016-10-06 00:57, M.M. wrote: > >> Bo to profiler ktory nie instrumentuje tylko przerywa. To jest zaleta > >> (mierzy razem z wywołaniami obcych biblitek) ale i wada (uszkadza cache > >> procesora i program zachowuje się inaczej jesli chodzi o prędkosc na > >> poziomie instrukcji). > > By musiał w pełni symulować daną konfigurację sprzętową, aby nie uszkadzać. > > Z grubsza to nie jest możliwe. Wywołania biblitek systemowych i kernela > nie da się instrumentować ani "naprawiać" cache po przerwaniu. Rozlatują > się subtelne zależnosci miedzywątkowe itd. Zgadzam się, to są utrudnienia praktycznie nie do przezwyciężenia. Niemniej jeśli optymalizujemy własny kod, to symulator powinien dać lepsze wyniki niż profiler który ciągle oddziałuje na cache. Pozdrawiam
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads