Page **1** of **1**

### Premium version issues

Posted:

**Thu Oct 28, 2010 8:34 am**
by **langland**

My system: windows XP 64,

GPU: quadro FX 570

1, I bought premium academic version for $95 and found out it seems has no difference than the basic version? For example I ran the gesv example and the premium part (marked by "#ifdef CULA_PREMIUM")didn't run. I followed the link from the invoice mail you sent to me and downloaded the package. If I did something wrong or missing something please tell me.

2, How can I call "GESV (Iteratively Refined)"? Because there's no help on how to get this iteratively refined function, no examples also. And this is the major reason why I bought premium version.

3, I can post a new topic in private forum which you said users who bought premium version can get support there.

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 8:57 am**
by **john**

It sounds like you are still looking at an installation of CULA Basic. Check the headers in the include directory - they should be somewhere around 200-300 lines in length for Premium. If they are around 50 lines, then they're still Basic. Same for question 2 - a Premium installation will describe this function in the API reference.

For question 3, the private support is not a feature of the academic version as per

http://www.culatools.com/user/signup.phpYour card, the FX 570, is compute model 1.1 which means that it does not have double precision hardware. It will be unable to run the refined GESV solver - you will be restricted to single precision for all routines. Even for singles, the card might not perform as well as you hope, as it has only 16 CUDA cores (compared to 448 for the C2050).

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 9:16 am**
by **langland**

I guess I downloaded the wrong version then? How can I download the premium though? I followd the link and I got 4 files:

cula_premium_2.0-win32.exe

cula_premium_2.0-win64.exe

cula_premium_2.1-win32.exe

cula_premium_2.1-win64.exe

These looks like premium to me?

however I just checked the header file cula.h/hpp, they're 47 lines. So is the downloading link wrong? If that is can you give me the right link?

I know FX 570 doesn't support double, however it will show "DGesv" if it is the premium. We're getting a newst testla C2070.

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 10:23 am**
by **john**

Definitely use CULA Premium 2.1 - win64. Try uninstalling first and then installing a fresh copy from the Premium exe. I have personally just doublechecked that the Premium 2.1 Win64 installer is correct.

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 11:31 am**
by **langland**

Ok I just unisntalled what I had and reinstalled the cula_premium_2.1-win64.exe. I checked before the installation and made sure that the old ones was deleted and the new one is installed into the default directory.

however, I'm still having the same problem, I'm looking at the gesv.c from example folders and this part "#ifdef CULA_PREMIUM

culaDoubleExample();

culaDoubleComplexExample();

#endif"

is still not working. Also the cula.h/hpp are still 47 lines, indicating this is not the premium version.

Any clue why is this happening?

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 12:27 pm**
by **john**

The cula.h is a convenience header and doesn't change in size - how about the culapack.h files? Those are the ones that declare the meaty functions.

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 1:14 pm**
by **langland**

culapack.h has 202 lines. Does this mean it is the premium version?

I found culaDgesv funtion, however according to the reference manual there's a GESV (Iteratively Refined) version? Since I know my matrices are more suited for iterative solving method. How can I find/get to call this feature?

### Re: Premium version issues

Posted:

**Thu Oct 28, 2010 5:16 pm**
by **kyle**

### Re: Premium version issues

Posted:

**Fri Oct 29, 2010 6:48 am**
by **langland**

GESV first attempts to factorize the matrix in single-precision and use this factorization within an iterative refinement procedure to produce a solution with double-precision normwise backward error quality (see below). If the approach fails the method switches to a double-precision factorization and solve.

I read this and am still confusing.

According to this paragraph, even if I called culadgesv, will it still try single-precision first factorization first? which kind of factorization does it use? what iterative procedure will it use?

Like I said in my last post, I know the property of my matrices and I know at least LU fac will do no good, iterative method fits the best for my problems. The reference leave these details in mystery which I need to know.

### Re: Premium version issues

Posted:

**Fri Oct 29, 2010 7:28 am**
by **kyle**

The "iterative" GESV is still an LU based direct solver for double precision data; It simply takes advantage of that fact that on some older CUDA GPUs the single precession hardware is many times (up to 8x) faster than the double precision hardware.

The solver will internally demote a double precision matrix to single precision, solve using LU in single precision, check the answer, refine for more accuracy, and solve again if needed. This process is repeated until a "double" accurate answer is found.

For some data sets (when combined with hardware where single precision performance is much greater than double precision performance), this will result in a faster solution than a direct double precision solution.

Hope this helps.

### Re: Premium version issues

Posted:

**Fri Oct 29, 2010 8:20 am**
by **langland**

Thanks for the reply, however the answer is disappointing. I expected the "iterative" version is using some iterative algorithm.

### Re: Premium version issues

Posted:

**Fri Oct 29, 2010 12:09 pm**
by **john**

It uses iterative refinement.

Are you looking for a true iterative algorithm, such as GMRES, CG, etc? If so, those are not components of LAPACK and are thus not components of CULA. I think you'll find that the GESV routine performs better and produces a more stable answer, in predictable time. Why do you prefer true iterative for this?

The system solution function names are a little confusing. Let me run through:

culaDgesv - will solve, via LU factorization, the system in double precision

culaSgesv - will solve, via LU factorization, the system in single precision

culaDsgesv - will solve, via LU factorization, the system using single precision and then attempt to iteratively refine the result to double precision quality