BOINC@Poland

Inne => Archiwum => Karty graficzne => Wątek zaczęty przez: matszpk w 13 Listopad 2015, 17:28

Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 13 Listopad 2015, 17:28
cześć. ostatnio znalazłem (na 99%) błąd sprzętowy w GPU radeona (Radeon HD 7850). zobaczcie wątek:
https://community.amd.com/thread/191288 (https://community.amd.com/thread/191288)

W poście zamiesciłem kody programu, który wykrywa ten błąd i binaria w Linuksie. chcę, żebyście spróbowali odpalić program i pokazali wyniki.
Testowałem tylko na Pitcairn. Niestety nie wiem jak będzie działać na prockach Fiji i Tonga (całkiem inna arch). Program testuje czy instrukcja S_SUB_I32 dobrze
liczy nadmiar (overflow) dla różnicy liczb. mój Pitcairn, niestety źle liczy. chciałbym wiedzieć czy inne GPU mają ten problem.
Niestety nie mam dostępu do Windows, więc nie mam binariów dla Windows. sprobuje skompilować dla Windows w następnym tygodniu.
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: RAD-Poland w 13 Listopad 2015, 18:43
dla HD7770

Usage: bugcheck GPUDEVICEINDEX
Using GPU Device #0
List of devices:
Device #0, name: Capeverde, AddressBits: 32

Device: Capeverde, Driver version: 1800.5
Loading program binary: bugcheck-Capeverde-32-1800.clo
Calling kernel:

sub_i32 #0: 10213 - 1256: value=8957, scc=0
    Expected value=8957, 64bit: 8957, expected scc=0
SUCCESS

sub_i32 #1: 13234 - 42221: value=-28987, scc=1
    Expected value=-28987, 64bit: -28987, expected scc=0
FAILED!! for sub_i32 scc #1: expected=0, result=1

sub_i32 #2: 6321 - -5343: value=11664, scc=0
    Expected value=11664, 64bit: 11664, expected scc=0
SUCCESS

sub_i32 #3: 2114067115 - -63823599: value=-2117076582, scc=0
    Expected value=-2117076582, 64bit: 2177890714, expected scc=1
FAILED!! for sub_i32 scc #3: expected=1, result=0

sub_i32 #4: -5343 - 6321: value=-11664, scc=0
    Expected value=-11664, 64bit: -11664, expected scc=0
SUCCESS

sub_i32 #5: -63823599 - 2114067115: value=2117076582, scc=0
    Expected value=2117076582, 64bit: -2177890714, expected scc=1
FAILED!! for sub_i32 scc #5: expected=1, result=0

sub_i32 #6: -10213 - -1256: value=-8957, scc=0
    Expected value=-8957, 64bit: -8957, expected scc=0
SUCCESS

sub_i32 #7: -13234 - -42221: value=28987, scc=1
    Expected value=28987, 64bit: 28987, expected scc=0
FAILED!! for sub_i32 scc #7: expected=0, result=1
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 13 Listopad 2015, 18:50
dzięki RAD-Poland  :p_arr:. CapeVerde to GCN1.0. czekam na wyniki dla GCN1.1 (Bonaire, Hawaii, Spectre...).
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: kva.pl w 13 Listopad 2015, 18:59
Jak wpadles na ten blad?
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 13 Listopad 2015, 19:10
Po napisaniu assemblera dla GPU postanowiłem nauczyć się i sprawdzić wszystkie instrukcje GPU :book:. no i wyszedł błąd...
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 14 Listopad 2015, 04:21
Mam R9-290 i 390, szkoda że nie napisałeś wcześniej jak fury miałem. Powiedz mi tylko czy przez virtualną maszynę zadziała? Albo jak na windowsie to odpalić?
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 14 Listopad 2015, 07:43
jeśli masz jakikolwiej kompilator (zalecam VS Express 2012)  to po prostu skompiluj plik bugcheck.cpp. musisz mieć zainstalowany AMDAPP, lub przynajmniej nagłówki OpenCL. może w weekend skompiluję pod windows.
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 14 Listopad 2015, 12:52
Mam visuala 2015, tego darmowego.

Jak się uda skompilować to strzele o tym artykuł i dorzucę aplikacje żeby ludzie mogli sobie na swoich kartach odpalić, oczywiście jak się zgodzisz 8)
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 14 Listopad 2015, 13:33
Dzięki. oczywiście zgadzam się.  8). Nie wiem jak program zachowa się dla Tonga lub Fiji (to GCN 1.2, niekompatybilne ze starszymi i jeszcze nie rozgryzłem binariów OpenCL dla tej arch).
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 14 Listopad 2015, 14:28
Właśnie z openCL mam problem przy kompilowaniu. Zainstalowałem AMD SDK i Visual dalej nie rozpoznaje co to jest.
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 14 Listopad 2015, 14:59
w opcjach kompilatora trzeba podać ścieżki do inkludów. np.: "/I..\OpenCL1.1\include"
w AMDAPP powinna być biblioteka OpenCL.lib. dodaj ją na końcu listy plików wejściowych. spróbuj skompilować z poziomu linii komend.
ponieważ MSVC nie jest do końca kompatybilny C++11 to prawdopodobnie trzeba będzie trochę zmienić program
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 14 Listopad 2015, 20:48
Juz jest wersja dla Windows. mam nadzieję, że zadziała.
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 15 Listopad 2015, 16:55
dodaj linijkę system("pause") albo żeby program zaczekał na komendę :D
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 15 Listopad 2015, 17:59
odpal z poziomu linii poleceń. Wybierz z programów 'Wiersz linii poleceń' (lub Uruchom... z 'cmd.exe') i przejdź do katalogu z programem (cd SCIEZKA) i uruchom. Jeszcze nie odpalałeś żadnego programu z linii poleceń?
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 15 Listopad 2015, 18:29
Odpalałem jakieś aplikacje monitorujące obciążenie CPU dedykowane dla Xeonów E5, jakiś dłuższy czas temu  %)
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 15 Listopad 2015, 18:53
jest nowy plik. już będzie czekać na reakcję użytkownika. Mozesz odpalić z poziomu GUI.
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 17 Listopad 2015, 01:16
Sorki ale czasu brakowało

Karta to Asus Radeon R9-390 STRIX (chyba)

    Usage: bugcheck GPUDEVICEINDEX
Using GPU Device #0
List of devices:
Device #0, name: Hawaii, AddressBits: 64
Device #1, name: Hawaii, AddressBits: 64

Device: Hawaii, Driver version: 1800.8
Loading program binary: bugcheck-Hawaii-64-1800.clo
Calling kernel:

sub_i32 #0: 10213 - 1256: value=8957, scc=0
    Expected value=8957, 64bit: 8957, expected scc=0
SUCCESS

sub_i32 #1: 13234 - 42221: value=-28987, scc=0
    Expected value=-28987, 64bit: -28987, expected scc=0
SUCCESS

sub_i32 #2: 6321 - -5343: value=11664, scc=0
    Expected value=11664, 64bit: 11664, expected scc=0
SUCCESS

sub_i32 #3: 2114067115 - -63823599: value=-2117076582, scc=1
    Expected value=-2117076582, 64bit: 2177890714, expected scc=1
SUCCESS

sub_i32 #4: -5343 - 6321: value=-11664, scc=0
    Expected value=-11664, 64bit: -11664, expected scc=0
SUCCESS

sub_i32 #5: -63823599 - 2114067115: value=2117076582, scc=1
    Expected value=2117076582, 64bit: -2177890714, expected scc=1
SUCCESS

sub_i32 #6: -10213 - -1256: value=-8957, scc=0
    Expected value=-8957, 64bit: -8957, expected scc=0
SUCCESS

sub_i32 #7: -13234 - -42221: value=28987, scc=0
    Expected value=28987, 64bit: 28987, expected scc=0
SUCCESS


Przy okazji widać, że R9-290 i R9-390 to identyczne układy, tylko w 390 dopchali ramu. Przynajmniej wszystko na to wskazuje, chyba że panowie z AMD wiedzą o większej ilości takich bugów, wtedy rzeczywiście może coś poprawiono przy okazji premiery.

Jutro dodam wyniki z R9-280x. Gdzie błąd ten powinien wystąpić.
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: matszpk w 17 Listopad 2015, 09:04
Dzięki za testy. okazuje się, że nie ma błędu w nowszych układach (GCN 1.1/1.2). Z linii poleceń możesz wybrać kartę do testów (podaj po prostu jej numer).
Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: PoznanskaPyra w 20 Listopad 2015, 19:00
Radeon R9-280x zgodnie z oczekiwaniami.

Usage: bugcheck GPUDEVICEINDEX
Using GPU Device #0
List of devices:
Device #0, name: Tahiti, AddressBits: 32

Device: Tahiti, Driver version: 1800.11
Loading program binary: bugcheck-Tahiti-32-1800.clo
Calling kernel:

sub_i32 #0: 10213 - 1256: value=8957, scc=0
    Expected value=8957, 64bit: 8957, expected scc=0
SUCCESS

sub_i32 #1: 13234 - 42221: value=-28987, scc=1
    Expected value=-28987, 64bit: -28987, expected scc=0
FAILED!! for sub_i32 scc #1: expected=0, result=1

sub_i32 #2: 6321 - -5343: value=11664, scc=0
    Expected value=11664, 64bit: 11664, expected scc=0
SUCCESS

sub_i32 #3: 2114067115 - -63823599: value=-2117076582, scc=0
    Expected value=-2117076582, 64bit: 2177890714, expected scc=1
FAILED!! for sub_i32 scc #3: expected=1, result=0

sub_i32 #4: -5343 - 6321: value=-11664, scc=0
    Expected value=-11664, 64bit: -11664, expected scc=0
SUCCESS

sub_i32 #5: -63823599 - 2114067115: value=2117076582, scc=0
    Expected value=2117076582, 64bit: -2177890714, expected scc=1
FAILED!! for sub_i32 scc #5: expected=1, result=0

sub_i32 #6: -10213 - -1256: value=-8957, scc=0
    Expected value=-8957, 64bit: -8957, expected scc=0
SUCCESS

sub_i32 #7: -13234 - -42221: value=28987, scc=1
    Expected value=28987, 64bit: 28987, expected scc=0
FAILED!! for sub_i32 scc #7: expected=0, result=1

Press ENTER





Tytuł: Błąd w GPU radeonów (GCN)
Wiadomość wysłana przez: Szopler w 20 Listopad 2015, 22:09
R9-280x:
Usage: bugcheck GPUDEVICEINDEX
Using GPU Device #0
List of devices:
Device #0, name: Tahiti, AddressBits: 32

Device: Tahiti, Driver version: 1642.5
Loading program binary: bugcheck-Tahiti-32-1700.clo
Calling kernel:

sub_i32 #0: 10213 - 1256: value=8957, scc=0
    Expected value=8957, 64bit: 8957, expected scc=0
SUCCESS

sub_i32 #1: 13234 - 42221: value=-28987, scc=1
    Expected value=-28987, 64bit: -28987, expected scc=0
FAILED!! for sub_i32 scc #1: expected=0, result=1

sub_i32 #2: 6321 - -5343: value=11664, scc=0
    Expected value=11664, 64bit: 11664, expected scc=0
SUCCESS

sub_i32 #3: 2114067115 - -63823599: value=-2117076582, scc=0
    Expected value=-2117076582, 64bit: 2177890714, expected scc=1
FAILED!! for sub_i32 scc #3: expected=1, result=0

sub_i32 #4: -5343 - 6321: value=-11664, scc=0
    Expected value=-11664, 64bit: -11664, expected scc=0
SUCCESS

sub_i32 #5: -63823599 - 2114067115: value=2117076582, scc=0
    Expected value=2117076582, 64bit: -2177890714, expected scc=1
FAILED!! for sub_i32 scc #5: expected=1, result=0

sub_i32 #6: -10213 - -1256: value=-8957, scc=0
    Expected value=-8957, 64bit: -8957, expected scc=0
SUCCESS

sub_i32 #7: -13234 - -42221: value=28987, scc=1
    Expected value=28987, 64bit: 28987, expected scc=0
FAILED!! for sub_i32 scc #7: expected=0, result=1

Press ENTER


7770:
Usage: bugcheck GPUDEVICEINDEX
Using GPU Device #0
List of devices:
Device #0, name: Capeverde, AddressBits: 32

Device: Capeverde, Driver version: 1800.11
Loading program binary: bugcheck-Capeverde-32-1800.clo
Calling kernel:

sub_i32 #0: 10213 - 1256: value=8957, scc=0
    Expected value=8957, 64bit: 8957, expected scc=0
SUCCESS

sub_i32 #1: 13234 - 42221: value=-28987, scc=1
    Expected value=-28987, 64bit: -28987, expected scc=0
FAILED!! for sub_i32 scc #1: expected=0, result=1

sub_i32 #2: 6321 - -5343: value=11664, scc=0
    Expected value=11664, 64bit: 11664, expected scc=0
SUCCESS

sub_i32 #3: 2114067115 - -63823599: value=-2117076582, scc=0
    Expected value=-2117076582, 64bit: 2177890714, expected scc=1
FAILED!! for sub_i32 scc #3: expected=1, result=0

sub_i32 #4: -5343 - 6321: value=-11664, scc=0
    Expected value=-11664, 64bit: -11664, expected scc=0
SUCCESS

sub_i32 #5: -63823599 - 2114067115: value=2117076582, scc=0
    Expected value=2117076582, 64bit: -2177890714, expected scc=1
FAILED!! for sub_i32 scc #5: expected=1, result=0

sub_i32 #6: -10213 - -1256: value=-8957, scc=0
    Expected value=-8957, 64bit: -8957, expected scc=0
SUCCESS

sub_i32 #7: -13234 - -42221: value=28987, scc=1
    Expected value=28987, 64bit: 28987, expected scc=0
FAILED!! for sub_i32 scc #7: expected=0, result=1

Press ENTER