Re: Bindings with ACML MSVC example project? I have linking problems.
George Slavov <[email protected]>
| Newsgroups | gmane.comp.lib.boost.ublas |
|---|---|
| Message-ID | <CALNdZVKMjjjYm_pBSWxYkH9x719q_4WD06qxnD4HxsrRfTzZhA@mail.gmail.com> |
With all your help I was able to get gemv to work, but then i tried a LAPACK call and it failed. I had to put this project on hold for now, but I'll get back to it in a few days. Thank you for all your help, George On Sun, Jul 1, 2012 at 11:21 AM, Thomas Klimpel <[email protected] > wrote: > George Slavov wrote: > > Thanks for your response Thomas. I really should have mentioned my build > environment. > > I'm on Windows 7, 64-bit as you guessed, using MSVC 2010 and Acml 5.1.0. > > I should be able to reproduce this build environment (if really required). > > > > I was really hoping the integer 8 macro will do the trick, but it didn't > seem to change anything. > > I really want to use 64-bit versions of things because I'll be using > pretty large data sets, > > so I'm not sure I even want to get the 32-bit version of Acml working. > > In any case, you will have to take care to define the macro according to > whether you link against a 32-bit integer or 64-bit integer version of the > library. > > > > I traced the ublas bindings call I have > > boost::numeric::bindings::blas::gemv(1.0f,A,x,0,blasResult); > > all the way to the Acml call > > BLAS_SGEMV( &blas_option< Trans >::value, &m, &n, &alpha, a, &lda, x, > > &incx, &beta, y, &incy ); > > and my debugger shows the first parameter (blas_option< Trans >::value) > contains 'N' as a char, > > so that looks right. But something here confuses me. Acml.h shows the > signature of sgemv is > > extern void sgemv(char transa, int m, int n, float alpha, float *a, int > lda, float *x, int incx, float beta, float *y, int incy); > > Note the first param is not a pointer to a char, but the char itself. So > what's with all the reference operators in the ublas bindings code? > > I'm really sorry that you had to go to all this trouble. I didn't pay > attention that acml.h said: > > C interfaces to ACML routines differ from FORTRAN interfaces in > the following major respects: > (i) The FORTRAN interface names are in upper case. > > for the windows version, while it said "(i) The FORTRAN interface names > are in lower case with appended underscore." for the linux version. > > > > Any other thoughts on what else I can try? > > I updated the code now to also support BIND_FORTRAN_UPPERCASE (and > BIND_FORTRAN_UPPERCASE_UNDERSCORE). The regression test pass rate for acml > on windows is much higher now. (I probably had postponed finding out why so > many tests for acml failed on windows, because other things were more > urgent to me. This was even before I complete ran out of time.) > > Please update to the latest version, define BIND_FORTRAN_UPPERCASE, and > test whether you need to define BIND_FORTRAN_INTEGER_8 or not. > > Regards, > Thomas > _______________________________________________ > ublas mailing list > [email protected] > http://lists.boost.org/mailman/listinfo.cgi/ublas > Sent to: [email protected] > _______________________________________________ ublas mailing list [email protected] http://lists.boost.org/mailman/listinfo.cgi/ublas Sent to: [email protected]