Matlab on CUDA with OpenSUSE 10.3 CUBLAS getmemory functions fail in Opensuse 10.3

Hello All

I am trying to get CUDA working within MATLAB, I seem to be having particularly trouble with CUBLAS’s Memory transfer functions.

When I use cublasalloc or cublassetvector functions, they fail to execute as seen by the exceptions thrown (caught using cublas status)

The functions in the Matlab examples Szeta and fs_turbo both seem to work well, however none of them call any BLAS

Could anyone tell me if there is a way to know if all my libraries are included correctly in the MAKEFILE, so that I can look around more thoroughly in this problem

MATLAB stack trace is below

Register State:

  eax = 0a9a50f0   ebx = 0a30d15c

  ecx = 9d8d41d9   edx = 00000000

  esi = 00000001   edi = 00000010

  ebp = bfa6a648   esp = bfa6a610

  eip = a1041d4c   flg = 00010212

Stack Trace:

  [0] libcudart.so.2:cudaMemcpy~(0x9d8d41d9, 0x09486980, 16, 1) + 124 bytes

  [1] Affine_Quadpro_Wrapper.mexglx:0x9d8d4217(0x09486980, 0xb499a368, 0x978e4010, 0)

  [2] Affine_Quadpro_Wrapper.mexglx:0x9d8d4b5c(0x97a11010, 0x978e4010, 0x977b7010, 0x9768a010)

  [3] Affine_Quadpro_Wrapper.mexglx:mexFunction~(2, 0xbfa6b040, 18, 0xbfa6b0a0) + 1212 bytes

  [4] libmex.so:mexRunMexFile(2, 0xbfa6b040, 18, 0xbfa6b0a0) + 109 bytes

A relevant snippet of my Makefile is below

# Define installation location for CUDA and compilation flags compatible

# with the CUDA include files.

CUDAHOME	= /usr/local/cuda

INCLUDEDIR  = -I$(CUDAHOME)/include

INCLUDELIB  = -L$(CUDAHOME)/lib -lcuda -lcufft -lcublas -lcudart -Wl,-rpath,$(CUDAHOME)/lib

CFLAGS	  = -fPIC -D_GNU_SOURCE -pthread -fexceptions -lcutil

COPTIMFLAGS = -O3 -funroll-loops -msse2

# Define installation location for MATLAB.

export MATLAB = /usr/local/matlab73

#export MATLAB = /Applications/MATLAB_R2007b

MEX		   = $(MATLAB)/bin/mex

MEXEXT		= .$(shell $(MATLAB)/bin/mexext)

I am stumped since I moved all my stuff to another machine on Fedora- 64 bit, Just reused the same makefile and everything worked like a dream…

I have done the obvious things like making sure the header files are there as below.

#include "mex.h"

#include "cublas.h"

#include <time.h>

#include <stdlib.h>

#include "cuda.h"

#include "cufft.h"

#include "cuda_runtime.h"

#include "driver_types.h"

Could some one please explain what is the non intuitive difference between cuda_runtime and the header files called cuda_runtime_api, driver_types which are only there in ifft2_cuda sample. The documentation mentions the host and device runtimes and doesnt elaborate on what the header files do.