Let me reuse this thread for another compiler crash issue. This kernel used to work, and now it crashes compilers 12.8 through 12.11beta. I have tried commenting out differnt parts of the kernel to see which command triggers the crash, and it seems that when *state = ...; is which causes the problem. Naturally I need this update to keep the PRNG running, so this is a must. Please, give me some advice how to find a way around that does not cause the compiler to crash.
Most definitely a compiler bug. It crashes writing c to the upper dword of (uint2) *state but the problem occurs because the compiler gets confused by the expression (x<c) in the RNG. Most any other expression works but not the reverse (c>x) so you might use something like:
c = hi + (x<=c);
or c = hi + (x<=c && x!= c); which is logically the same with the original expression.
Versions 12_8 through 12_10 work fine for me and only 12_11 crashes. If you re-installed 12_8 - 12_10 after installing 12_11, parts of 12_11 can remain, which a new install can't remove, including the compiler. That happen to me and I had to manually remove several of the driver files.
Interestingly, when it crashes it dumps piles of LLVM debug code that I've never seen before so maybe it's a new LLVM compiler. That might explain why the 12_11 "Don't Settle" drivers are significantly faster that older drivers for gcn. ...... when it works. .
LLVM ERROR: Cannot select: 0x2b7cb580: i8 = setcc 0x2b0aca40,0x2b0ac840, 0x2a07f590 [ID=102]
0x2b0aca40: i32 = AMDILISD::ADD 0x2b0ac840, 0x2a07fc90 [ID=100]
0x2b0ac840: i32 = mul 0x2b0ae660, 0x2b0b2eb0 [ORD=44] [ID=95]
0x2b0b36b0: i32 = mul 0x2b7cb880, 0x2b0b2eb0 [ORD=35] [ID=86]
0x2b7cb880: i32 = AMDILISD::ADD 0x2b0ac540, 0x2b0ac440 [ID=81]
0x2b0b2eb0: i32 = Constant<-83941> [ORD=16] [ID=4]
Thanks for your reply drallan. I went and tried out 12.11 beta7 to see if perhaps this issue has been addressed, but no. Infact practically no OpenCL program works that I've developed. There are two running projects, and neither of them compile. These beta drivers sure accelerate games, but they sure wreck havoc in OpenCL.
Can someone tell me how to effectively roll back AMD drivers on a Win 8 system, because I cannot develop OpenCL programs since roughly 2 weeks now and it DRIVING ME NUTS! I have tried uninstaller programs aiming at removing ATi drivers after regular uninstallation, I have also tried
to no avail. Is it really that complicated to wipe a driver off of a Windows machine? After uninstalling ALL AMD software from the computer, I uninstall the driver by force from Device Manager, and after a restart, the long awaited SW rendered 800*600 resolution awaits me, but before I could install Catalyst, Windows finds some driver named ATi FirePro M7820, which effectively renders desktop. Even after having Catalyst 12.8 installed on my machine, the same device string remains. I wouldn't care about the device string, but all kernel compilations fail. Kernel Analyzer crashes all my ongoing project kernel's compilations.
Someone help me cause it's really becoming uncool that reverting drivers is so freaking hard.
Just out of curiosity: why do so many registry entries remain after a full uninstall?
We went rounds with removing the 12.11 Beta driver, but i found 2 ways to completely remove it in order to revert to 12.8. On one Windows 7 x64 system, without an SSD, I was able to use a restore point from before I installed the 12.11 Beta. On my Windows 8 system I used the steps I outlined here:
Windows 8 will still run some sort of an AMD driver, but you should be able to install the driver of your choice without any remnants of the 12.11 Beta drivers.
I hope this helps, and I have to agree that the beta drivers are great for gaming, but any compute tasks are totally broken with the beta OpenCL version.