I downloaded and built the ViennaCL library v1.4 on my MacBookPro Retina with OSX Lion. I've got all the standard dev tools (xcode, cmake, etc) and when I followed the installation instructions for Linux/OSX I was able to cmake and make the library and binaries successfully. However, when I tried running a couple of the example apps they die with the following error:
arak:build josh$ examples/tutorial/blas1
terminate called throwing an exceptionAbort trap: 6
Has anyone come across this?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
it seems like an exception is thrown, possibly because something is no initialized properly. Could you please wrap a try/catch around the code in main() like this:
Thanks for the response.
I get a "Exception: ViennaCL: FATAL ERROR: CL_INVALID_VALUE." and when I ran this in the debugger I see that it happens the first time that the program tries to set a GPU variable:
viennacl::scalar<ScalarType> vcl_s2 = ScalarType(1.0);
Earlier lines in the code worked fine, e.g. ScalarType s3 = ScalarType(42.0). Thus, the problem appears to be something specific about accessing the GPU.
Note that I just tried the exact same code on a MacPro workstation and everything worked fine. It was also running Lion, and had a very similar dev environment.
Perhaps this is a problem specific to the new Retina Macbook Pros.
Here is the system profiler output for the graphics card information on my MBP retina. Perhaps you'll see if there's a problem:
Also, I'm not sure why the system_profiler says there's two graphics cards, but I just checked more detail and it appears that I'm using the Intel HD Graphics 4000 one.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
hmm, if the Intel graphics chip is used, I can imagine the following failure: With 512 MB RAM for the GPU, quite a substantial amount is required for the high resolution of the Retina display 4 Byte * 2880 x 1800 is about 20 MB per frame. With double-buffering and some other things in place, it may well be that the example just runs out of memory. This would at least explain why you only see the issues on this one machine, but not on another.
My experience is that CL_INVALID_VALUE is sometimes returned if there are problems with allocating memory, hence this would be consistent. Other than that, I have really no idea what else could go wrong. Which device is returned as first device when running viennacl-info?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks, nothing suspicious here. I'm still puzzled about the cause of the error. You mentioned that only some examples fail. Could you please tell me which of them actually fail? Maybe I can find a common pattern.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I downloaded and built the ViennaCL library v1.4 on my MacBookPro Retina with OSX Lion. I've got all the standard dev tools (xcode, cmake, etc) and when I followed the installation instructions for Linux/OSX I was able to cmake and make the library and binaries successfully. However, when I tried running a couple of the example apps they die with the following error:
arak:build josh$ examples/tutorial/blas1
terminate called throwing an exceptionAbort trap: 6
Has anyone come across this?
Hi,
it seems like an exception is thrown, possibly because something is no initialized properly. Could you please wrap a try/catch around the code in main() like this:
As an alternative, please run the code in a debugger and send us a stacktrace.
Thanks and best regards,
Karli
Thanks for the response.
I get a "Exception: ViennaCL: FATAL ERROR: CL_INVALID_VALUE." and when I ran this in the debugger I see that it happens the first time that the program tries to set a GPU variable:
viennacl::scalar<ScalarType> vcl_s2 = ScalarType(1.0);
Earlier lines in the code worked fine, e.g. ScalarType s3 = ScalarType(42.0). Thus, the problem appears to be something specific about accessing the GPU.
Note that I just tried the exact same code on a MacPro workstation and everything worked fine. It was also running Lion, and had a very similar dev environment.
Perhaps this is a problem specific to the new Retina Macbook Pros.
Here is the system profiler output for the graphics card information on my MBP retina. Perhaps you'll see if there's a problem:
Graphics/Displays:
NVIDIA GeForce GT 650M:
Chipset Model: NVIDIA GeForce GT 650M
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 1024 MB
Vendor: NVIDIA (0x10de)
Device ID: 0x0fd5
Revision ID: 0x00a2
ROM Revision: 3688
gMux Version: 3.2.19
Intel HD Graphics 4000:
Chipset Model: Intel HD Graphics 4000
Type: GPU
Bus: Built-In
VRAM (Total): 512 MB
Vendor: Intel (0x8086)
Device ID: 0x0166
Revision ID: 0x0009
gMux Version: 3.2.19
Displays:
Color LCD:
Display Type: LCD
Resolution: 2880 X 1800
Retina: Yes
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Built-In: Yes
Connection Type: DisplayPort
Also, I'm not sure why the system_profiler says there's two graphics cards, but I just checked more detail and it appears that I'm using the Intel HD Graphics 4000 one.
hmm, if the Intel graphics chip is used, I can imagine the following failure: With 512 MB RAM for the GPU, quite a substantial amount is required for the high resolution of the Retina display 4 Byte * 2880 x 1800 is about 20 MB per frame. With double-buffering and some other things in place, it may well be that the example just runs out of memory. This would at least explain why you only see the issues on this one machine, but not on another.
My experience is that CL_INVALID_VALUE is sometimes returned if there are problems with allocating memory, hence this would be consistent. Other than that, I have really no idea what else could go wrong. Which device is returned as first device when running viennacl-info?
Here's the output of viennacl-info:
arak:build josh$ examples/tutorial/viennacl-info
# =========================================
# Platform Information
# =========================================
#
# Vendor and version: Apple: OpenCL 1.1 (Aug 10 2012 19:59:48)
#
# ViennaCL uses this OpenCL platform by default.
#
# Available Devices:
#
---------------------------
No.: 0
Name: Intel(R) Core(TM) i7-3820QM CPU @ 2.70GHz
Compute Units: 8
Workgroup Size: 1024
Global Memory: 16384 MB
Local Memory: 32 KB
Max-alloc Memory: 4096 MB
Double Support: 1
Driver Version: 1.1
---------------------------
---------------------------
No.: 1
Name: GeForce GT 650M
Compute Units: 2
Workgroup Size: 1024
Global Memory: 1024 MB
Local Memory: 48 KB
Max-alloc Memory: 256 MB
Double Support: 0
Driver Version: CLH 1.0
---------------------------
###########################################
Thanks, nothing suspicious here. I'm still puzzled about the cause of the error. You mentioned that only some examples fail. Could you please tell me which of them actually fail? Maybe I can find a common pattern.