Skocz do zawartości

Błąd numeryczny (?) procesora Skylake 6700HQ i starszych


max2491

Rekomendowane odpowiedzi

O błędzie procesora Skylake 6700 HQ pisano wiele, ale wydaje mi się, że i pewne starsze wersje procesorów low-end dla laptopów też nie są lepsze. Mój program, wcale nie spokrewniony z Prime, pada numerycznie na etapie egzekucji, gdy jeden z plików ma mniej lub więcej pustych wierszy w postaci źródłowej. Po dodaniu, lub usunięciu,  pustego wiersza, wszystko jest na etapie egzekucji OK. Nie jestem w stanie jednoznacznie zdiagnozować przyczyny. Równie dziwaczne zachowanie ma miejsce na nniej zaawansowanych platformach sprzętowych. Na starej sprawdzonej platformie Kentsfield Q6600 nie ma najmniejszych problemów. Czy ktoś jest zainteresowany wgryzieniem się w ten problem. Postać źródłowa tego trefnego programu jest dość rozbudowana, ale problem pojawia się podczas modyfikacji stosunkowo niewielkiego pliku (ca 30 kB)..

Edytowane przez max2491
brak odpowiedzi
Odnośnik do komentarza
Udostępnij na innych stronach

Nieco więcej szczegółów i pewne korekty. Aplikacja skompilowana na Skylake 6700HQ działa na tej platformie niedeterministycznie. Jedno uruchomienie prowadzi do poprawnych rezultatów, a któreś z kolejnych (pseudoprzypadkowo) do zupełnie błędnych. Binaria przeniesione na Kentsfield Q6600 generują wyłącznie poprawne rezultaty. Testowałem oba komputery za pomocą "mprime" (z mersenne.org), ale to jest raczej dość jednorodny test obciążeniowy. Nie wykazały te testy żadnych błędów. Może ktoś chciałby uruchomić binaria mojej aplikacji na platformie Skylake i podzielić się rezultatami?

Odnośnik do komentarza
Udostępnij na innych stronach

Podejrzewałem, że za to niedeterministyczne działanie odpowiada hyperthreading i scheduler. Testowałem więc najprostszą wersję wielowątkową z pojedynczym wątkiem (pthreads). Po pierwsze, sztywne dowiązanie wątku do tego samego procesora (affinity) niczego nie zmieniło. Po drugie, wyłączenie hyperthreading w procesorze Skylake (to różni Skylake i Kentsfield) też niczego nie zmieniło, tj. nie usunęło niedermininizmu. Jakieś dalsze sugestie?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...