Jump to content
max2491

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

Recommended Posts

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)..

Edited by max2491
brak odpowiedzi

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×