You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(8) |
Jul
(16) |
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(4) |
Feb
(3) |
Mar
(5) |
Apr
|
May
(24) |
Jun
|
Jul
(5) |
Aug
(17) |
Sep
|
Oct
(6) |
Nov
(9) |
Dec
(8) |
2012 |
Jan
(5) |
Feb
(14) |
Mar
(25) |
Apr
(7) |
May
(15) |
Jun
(12) |
Jul
(22) |
Aug
(4) |
Sep
(10) |
Oct
(10) |
Nov
(19) |
Dec
(17) |
2013 |
Jan
(8) |
Feb
(10) |
Mar
(16) |
Apr
(3) |
May
(16) |
Jun
(26) |
Jul
|
Aug
(9) |
Sep
|
Oct
(8) |
Nov
(17) |
Dec
(2) |
2014 |
Jan
(37) |
Feb
(15) |
Mar
(6) |
Apr
(9) |
May
(11) |
Jun
(11) |
Jul
(9) |
Aug
(9) |
Sep
(19) |
Oct
(4) |
Nov
(22) |
Dec
(21) |
2015 |
Jan
|
Feb
(7) |
Mar
(2) |
Apr
(17) |
May
(22) |
Jun
(11) |
Jul
(11) |
Aug
(6) |
Sep
(7) |
Oct
|
Nov
(5) |
Dec
|
2016 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(8) |
May
(8) |
Jun
(11) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
2017 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
(19) |
May
|
Jun
(7) |
Jul
(7) |
Aug
(2) |
Sep
(6) |
Oct
|
Nov
(3) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
(2) |
Dec
|
2019 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2020 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(2) |
Aug
|
Sep
(2) |
Oct
|
Nov
(31) |
Dec
(4) |
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Karl R. <ru...@iu...> - 2010-07-15 14:11:12
|
Hi Mario, most Linux users have boost installed in a system-wide location. With the NVIDIA driver, the OpenCL files are also accessible system-wide, so there was simply no need for CMake variables. Anyway, I agree that CMAKE variables can further simplify the process, especially for Windows users. I'll include you suggested changes in the next release. Many thanks! Best regards, Karli On 07/15/2010 03:21 PM, Mario Valle wrote: > I have boost installed in a non-standard place. > ViennaCL CMAKE does not find it. > To continue building the tutorials, I added to CMakeList.txt: > INCLUDE_DIRECTORY("/apps/boost-1.43/include") > and was able to compile them. > > Suggestion: why don't have CMAKE variables to set boost and OpenCL > directories if needed? > > Thanks! > mario > |
From: Mario V. <mv...@cs...> - 2010-07-15 13:21:24
|
I have boost installed in a non-standard place. ViennaCL CMAKE does not find it. To continue building the tutorials, I added to CMakeList.txt: INCLUDE_DIRECTORY("/apps/boost-1.43/include") and was able to compile them. Suggestion: why don't have CMAKE variables to set boost and OpenCL directories if needed? Thanks! mario -- Ing. Mario Valle Data Analysis and Visualization Group | http://www.cscs.ch/~mvalle Swiss National Supercomputing Centre (CSCS) | Tel: +41 (91) 610.82.60 v. Cantonale Galleria 2, 6928 Manno, Switzerland | Fax: +41 (91) 610.82.82 |
From: Karl R. <ru...@iu...> - 2010-07-13 14:37:49
|
Hello Andrew, Duh, I missed a synchronization barrier in the compute kernel for the upper triangular solver. So it's pretty interesting that it already worked nicely with the Stream SDK. To fix the issue, please replace around line 250 in viennacl/linalg/kernels/matrix_source.h the code " if (get_global_id(0) == 0) \n" " vector[row] /= matrix[row*row_length+row]; \n" by " barrier(CLK_GLOBAL_MEM_FENCE); \n" " if (get_global_id(0) == 0) \n" " vector[row] /= matrix[row*row_length+row]; \n" I am pretty sure that a lot of performance tweaks can still be applied to the triangular solver. So, please let us know if the linear solver turns out to be the bottleneck, then we can assign higher priority to that :-) Nevertheless, a triangular solver might still be too serial to provide a big performance leap on GPUs. Best regards, Karli On 06/30/2010 11:51 PM, mel...@ms... wrote: > Hi, I've just recently discovered your project and I was toying around > LU factorization and forward-back substitution, and in my programs, the > inplace_solve function seems to break down when I invert a matrix larger > than about 225x225. > > I'm using linux and an NVIDIA tesla C1060. > > Basically, when I run the viennacl inplace solve and the ublas inplace > solve they produce results differing by about one index (if my matrix is > (200-400)^2 ) and more indices if the matrix is larger. I tested the > lu_factorize function, and that produces similar results to ublas (up to > a relatively high level of significance), so I'm fairly certain the > problem I'm having lies with the inplace_solve function. > > Here is the code I'm running: > > -------------------------------------------------------------------------------------------------- > > #include <boost/numeric/ublas/triangular.hpp> > #include <boost/numeric/ublas/matrix_sparse.hpp> > #include <boost/numeric/ublas/vector.hpp> > #include <boost/numeric/ublas/matrix.hpp> > #include <boost/numeric/ublas/io.hpp> > #include <boost/numeric/ublas/lu.hpp> > #include <fstream> > > #include "viennacl/vector.hpp" > #include "viennacl/matrix.hpp" > #include "viennacl/linalg/direct_solve.hpp" > #include "benchmark-utils.hpp" > > using namespace boost::numeric; > > int main() > { > int N = 500; > ublas::matrix<double> A(N,N); > ublas::vector<double> b(N); > ublas::vector<double> b2(N); > viennacl::matrix<double> gpu_A(N,N); > viennacl::vector<double> gpu_b(N); > > for (int i=0;i<N;i++) > { > for (int j=i;j<N;j++) > { > A(i,j)=1; > } > b(i)=N-i; > } > copy(A,gpu_A); > copy(b,gpu_b); > > ublas::inplace_solve(A,b,ublas::upper_tag()); > viennacl::linalg::inplace_solve(gpu_A,gpu_b,viennacl::linalg::upper_tag()); > ublas::inplace_solve(A2,b3,ublas::upper_tag()); > copy(gpu_b,b2); > > > double err = 0; > > > for (int i=0;i<N;i++) > { > if (abs(b2(i)-b(i))>err) > { > err=abs(b2(i)-b(i)); > std::cout<<"At index "<<i<<std::endl; > std::cout<<"CPU= "<<b(i)<<" and"<<std::endl; > std::cout<<"GPU= "<<b2(i)<<std::endl; > } > } > > std::cout<<err<<std::endl; > } > > -------------------------------------------------------------------------------------------------- > > Every time I run this there are one or two errors at different indices. > Am I doing something wrong? Do you have any suggestions? > > Thanks in advance, > Andrew Melfi > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Karl R. <ru...@iu...> - 2010-07-12 11:50:04
|
Hi Andrew, Thanks for supplying the test code, we run this on our test environment and it appears to be a bug in the NVIDIA lib. While the results are fine with ATI Stream SDK in single and double precision on both CPU and GPU for matrices of various dimensions, the error was reproduced on NVIDIA hardware in single precision (matrices larger than about 1000x1000) and double precision (matrices larger than approx. 250x250). I'm going to report that issue at the NVIDIA forums, that's all I can do at present. Best regards, Karli On 06/30/2010 11:51 PM, mel...@ms... wrote: > Hi, I've just recently discovered your project and I was toying around > LU factorization and forward-back substitution, and in my programs, the > inplace_solve function seems to break down when I invert a matrix larger > than about 225x225. > > I'm using linux and an NVIDIA tesla C1060. > > Basically, when I run the viennacl inplace solve and the ublas inplace > solve they produce results differing by about one index (if my matrix is > (200-400)^2 ) and more indices if the matrix is larger. I tested the > lu_factorize function, and that produces similar results to ublas (up to > a relatively high level of significance), so I'm fairly certain the > problem I'm having lies with the inplace_solve function. > > Here is the code I'm running: > > (snip) > -------------------------------------------------------------------------------------------------- > > Every time I run this there are one or two errors at different indices. > Am I doing something wrong? Do you have any suggestions? > > Thanks in advance, > Andrew Melfi > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Karl R. <ru...@iu...> - 2010-07-11 19:33:04
|
Hi Alejandro, From your errors I would say that you try to compile all of the examples, but you do not have to optional Boost/uBLAS library installed, so some of them fail. I advise you to either install uBLAS or compile only examples that do not depend on uBLAS (tut1, tut4, vectorbench if I remember correctly). Moreover, you do not have to specify the library path to ViennaCL, you just need to make sure that the OpenCL lib can be found. With NVIDIA GPUs, this is all done by the driver, so you don't need to set any library paths at all. Best regards, Karli On 07/10/2010 07:11 AM, Alejandro Llanos wrote: > Hi, > > I would like to try your GPU library. I was trying to compile the > examples, but I have some errors, please see the attached file. > > I'm using a Geforce 9800 Nvidia card, Ubuntu 9.04 OS. > > Also I put the library path here, like the manual said: > export > LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/alejandro/ViennaCL-1.0.4/viennacl: > > Any idea? > > Thanks, > > With kind regards, > > -- > Alejandro Llanos Fuentes > Student of Master of Science in Mathematical Modelling > Universidad de La Frontera. > Temuco Chile. > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Alejandro L. <a.l...@gm...> - 2010-07-10 05:11:33
|
alejandro@cuda:~/ViennaCL-1.0.4/build$ make /usr/bin/cmake -H/home/alejandro/ViennaCL-1.0.4 -B/home/alejandro/ViennaCL-1.0.4/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/alejandro/ViennaCL-1.0.4/build/CMakeFiles /home/alejandro/ViennaCL-1.0.4/build/CMakeFiles/progress.make make -f CMakeFiles/Makefile2 all make[1]: se ingresa al directorio `/home/alejandro/ViennaCL-1.0.4/build' make -f CMakeFiles/solverbench.dir/build.make CMakeFiles/solverbench.dir/depend make[2]: se ingresa al directorio `/home/alejandro/ViennaCL-1.0.4/build' cd /home/alejandro/ViennaCL-1.0.4/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/alejandro/ViennaCL-1.0.4 /home/alejandro/ViennaCL-1.0.4 /home/alejandro/ViennaCL-1.0.4/build /home/alejandro/ViennaCL-1.0.4/build /home/alejandro/ViennaCL-1.0.4/build/CMakeFiles/solverbench.dir/DependInfo.cmake --color= make[2]: se sale del directorio `/home/alejandro/ViennaCL-1.0.4/build' make -f CMakeFiles/solverbench.dir/build.make CMakeFiles/solverbench.dir/build make[2]: se ingresa al directorio `/home/alejandro/ViennaCL-1.0.4/build' /usr/bin/cmake -E cmake_progress_report /home/alejandro/ViennaCL-1.0.4/build/CMakeFiles 1 [ 12%] Building CXX object CMakeFiles/solverbench.dir/examples/benchmarks/solver.o /usr/bin/c++ -I/home/alejandro/ViennaCL-1.0.4/. -I/include -Wall -pedantic -O3 -o CMakeFiles/solverbench.dir/examples/benchmarks/solver.o -c /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp En el fichero incluĆdo de /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/prod.hpp:21, de /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/cg.hpp:26, de /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:30: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:23:43: error: boost/numeric/ublas/vector.hpp: No existe el fichero Ć³ directorio /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:24:43: error: boost/numeric/ublas/matrix.hpp: No existe el fichero Ć³ directorio En el fichero incluĆdo de /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:38: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:5:49: error: boost/numeric/ublas/matrix_sparse.hpp: No existe el fichero Ć³ directorio /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:41:52: error: boost/numeric/ublas/operation_sparse.hpp: No existe el fichero Ć³ directorio In file included from /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/prod.hpp:21, from /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/cg.hpp:26, from /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:30: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:66: error: āboostā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:66: error: el argumento de plantilla 1 es invĆlido /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:72: error: āboostā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:72: error: el argumento de plantilla 1 es invĆlido /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:78: error: āboostā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:78: error: el argumento de plantilla 1 es invĆlido /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:84: error: āboostā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/tag_of.hpp:84: error: el argumento de plantilla 1 es invĆlido In file included from /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/cg.hpp:26, from /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:30: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/prod.hpp: In function āVectorT viennacl::linalg::prod(const MatrixT&, const VectorT&, typename viennacl::tools::enable_if<viennacl::is_ublas::value, void>::type*)ā: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/prod.hpp:45: error: āboostā no se ha declarado In file included from /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/cg.hpp:27, from /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:30: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/inner_prod.hpp: In function ātypename VectorT1::value_type viennacl::linalg::inner_prod(const VectorT1&, const VectorT2&, typename viennacl::tools::enable_if<viennacl::is_ublas::value, void>::type*)ā: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/inner_prod.hpp:43: error: āboostā no se ha declarado In file included from /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/gmres.hpp:23, from /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:32: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/norm_2.hpp: In function ātypename VectorT::value_type viennacl::linalg::norm_2(const VectorT&, typename viennacl::tools::enable_if<viennacl::is_ublas::value, void>::type*)ā: /home/alejandro/ViennaCL-1.0.4/./viennacl/linalg/norm_2.hpp:45: error: āboostā no se ha declarado In file included from /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:38: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: At global scope: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:11: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:11: error: expected ā,ā or ā...ā before ā<ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: In function ābool readVectorFromFile(const std::string&, int)ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:19: error: āvecā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: At global scope: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:32: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:32: error: expected ā,ā or ā...ā before ā<ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: In function ābool readVectorFromBinaryFile(const std::string&, int)ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:39: error: āvecā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: At global scope: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:46: error: expected ā,ā or ā...ā before ā::ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:46: error: ISO C++ prohĆbe la declaraciĆ³n de āboostā sin tipo /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: In function ābool saveVectorToBinaryFile(const std::string&, int)ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:51: error: āvecā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: At global scope: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:59: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:59: error: expected ā,ā or ā...ā before ā<ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp: In function ābool readMatrixFromFile(const std::string&, int)ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/io.hpp:75: error: āmatrixā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp: At global scope: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:58: error: declaraciĆ³n plantilla de āScalarType diff_infā /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:58: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:58: error: expected primary-expression before ā>ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:58: error: āv1ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:58: error: expected primary-expression before ā&ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:58: error: āv2ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:75: error: declaraciĆ³n plantilla de āScalarType diff_2ā /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:75: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:75: error: expected primary-expression before ā>ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:75: error: āv1ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:75: error: expected primary-expression before ā&ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:75: error: āv2ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp: In function āint run_benchmark()ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:97: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:97: error: expected primary-expression before ā>ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:97: error: āublas_vec1ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:98: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:98: error: expected primary-expression before ā>ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:98: error: āublas_vec2ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:99: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:99: error: expected primary-expression before ā>ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:99: error: āublas_resultā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:136: error: āboostā no se ha declarado /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:136: error: expected primary-expression before ā>ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:136: error: āublas_matrixā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:157: error: āboostā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:157: error: el argumento de plantilla 1 es invĆlido /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:157: error: invalid type in declaration before ā(ā token /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:169: error: solicitud por el miembro āapplyā en āublas_ilutā, el cual es del tipo āintā que no es clase /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:204: error: no hay argumentos para āprodā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de āprodā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:204: error: (si utiliza ā-fpermissiveā, G++ aceptarĆ su cĆ³digo, pero permitir el uso de un nombre sin declarar es obsoleto) /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:204: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:205: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:205: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:256: error: no hay argumentos para āprodā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de āprodā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:256: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:257: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:257: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:316: error: no hay argumentos para āprodā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de āprodā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:316: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:317: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:317: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:369: error: no hay argumentos para āprodā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de āprodā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:369: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:370: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:370: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:430: error: no hay argumentos para āprodā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de āprodā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:430: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:431: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:431: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:481: error: no hay argumentos para āprodā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de āprodā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:481: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:482: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:482: error: no hay argumentos para ānorm_2ā que dependan de un parĆmetro de plantilla, por lo cual una declaraciĆ³n de ānorm_2ā debe estar disponible /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp: In function āint run_benchmark() [with ScalarType = float]ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:549: instantiated from here /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:136: error: se trata la lista de expresiones initializer como una expresiĆ³n compuesta /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:549: instantiated from here /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:98: error: ānorm_2ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:97: error: āprodā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:549: instantiated from here /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:99: error: ādiff_2ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp: In function āint run_benchmark() [with ScalarType = double]ā: /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:556: instantiated from here /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:136: error: se trata la lista de expresiones initializer como una expresiĆ³n compuesta /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:556: instantiated from here /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:98: error: ānorm_2ā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:97: error: āprodā no se declarĆ³ en este Ćmbito /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:556: instantiated from here /home/alejandro/ViennaCL-1.0.4/examples/benchmarks/solver.cpp:99: error: ādiff_2ā no se declarĆ³ en este Ćmbito make[2]: *** [CMakeFiles/solverbench.dir/examples/benchmarks/solver.o] Error 1 make[2]: se sale del directorio `/home/alejandro/ViennaCL-1.0.4/build' make[1]: *** [CMakeFiles/solverbench.dir/all] Error 2 make[1]: se sale del directorio `/home/alejandro/ViennaCL-1.0.4/build' make: *** [all] Error 2 |
From: Karl R. <ru...@iu...> - 2010-07-09 15:21:36
|
Hi! Sorry for the late approval of your support email, the junk filter caught it... Hmm, I'll have a look at the inplace_solve issue and let you know by Monday. Best regards, Karli On 06/30/2010 11:51 PM, mel...@ms... wrote: > Hi, I've just recently discovered your project and I was toying around > LU factorization and forward-back substitution, and in my programs, the > inplace_solve function seems to break down when I invert a matrix larger > than about 225x225. > > I'm using linux and an NVIDIA tesla C1060. > > Basically, when I run the viennacl inplace solve and the ublas inplace > solve they produce results differing by about one index (if my matrix is > (200-400)^2 ) and more indices if the matrix is larger. I tested the > lu_factorize function, and that produces similar results to ublas (up to > a relatively high level of significance), so I'm fairly certain the > problem I'm having lies with the inplace_solve function. > > Here is the code I'm running: > > -------------------------------------------------------------------------------------------------- > > #include <boost/numeric/ublas/triangular.hpp> > #include <boost/numeric/ublas/matrix_sparse.hpp> > #include <boost/numeric/ublas/vector.hpp> > #include <boost/numeric/ublas/matrix.hpp> > #include <boost/numeric/ublas/io.hpp> > #include <boost/numeric/ublas/lu.hpp> > #include <fstream> > > #include "viennacl/vector.hpp" > #include "viennacl/matrix.hpp" > #include "viennacl/linalg/direct_solve.hpp" > #include "benchmark-utils.hpp" > > using namespace boost::numeric; > > int main() > { > int N = 500; > ublas::matrix<double> A(N,N); > ublas::vector<double> b(N); > ublas::vector<double> b2(N); > viennacl::matrix<double> gpu_A(N,N); > viennacl::vector<double> gpu_b(N); > > for (int i=0;i<N;i++) > { > for (int j=i;j<N;j++) > { > A(i,j)=1; > } > b(i)=N-i; > } > copy(A,gpu_A); > copy(b,gpu_b); > > ublas::inplace_solve(A,b,ublas::upper_tag()); > viennacl::linalg::inplace_solve(gpu_A,gpu_b,viennacl::linalg::upper_tag()); > ublas::inplace_solve(A2,b3,ublas::upper_tag()); > copy(gpu_b,b2); > > > double err = 0; > > > for (int i=0;i<N;i++) > { > if (abs(b2(i)-b(i))>err) > { > err=abs(b2(i)-b(i)); > std::cout<<"At index "<<i<<std::endl; > std::cout<<"CPU= "<<b(i)<<" and"<<std::endl; > std::cout<<"GPU= "<<b2(i)<<std::endl; > } > } > > std::cout<<err<<std::endl; > } > > -------------------------------------------------------------------------------------------------- > > Every time I run this there are one or two errors at different indices. > Am I doing something wrong? Do you have any suggestions? > > Thanks in advance, > Andrew Melfi > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Karl R. <ru...@iu...> - 2010-07-09 15:18:48
|
Hi! Sorry for the late approval of the message. Which GPU do you use? Best regards, Karli On 07/08/2010 09:58 PM, Lam, Jason wrote: > Tutorial 4 & 5 run without error > > System info: > > OS: Mac OS X Snow Leopard > > ATI Radeon HD 4870 > > ViennaCL 1.0.4 > > Snow Leopard as an implementation of OpenCL. I also installed CUDA SDK. > > ./tut1 > > CPU scalar s2: 1 > > GPU scalar vcl_s2: 1 > > Could not start kernel 'inner_prod' with global work size 1024 and local > work size 128. > > Error -54 in function start1D ( > /Users/ssoa/Downloads/ViennaCL-1.0.4/./viennacl/ocl/kernel.hpp:120 ) > CL_INVALID_WORK_GROUP_SIZE > > The supplied work group size is invalid. If you set this value manually, > please reconsider your choice. > > ./tut2 > > ----- Matrix-Vector product ----- > > ----- Transposed Matrix-Vector product ----- > > ----- Upper Triangular solve ----- > > Could not start kernel 'upper_triangular_substitute_inplace' with global > work size 128 and local work size 128. > > Error -54 in function start1D ( > /Users/ssoa/Downloads/ViennaCL-1.0.4/./viennacl/ocl/kernel.hpp:120 ) > CL_INVALID_WORK_GROUP_SIZE > > The supplied work group size is invalid. If you set this value manually, > please reconsider your choice. > > ./tut3 > > Reading ublas matrix > > done reading matrix > > done reading rhs > > done reading result > > ----- CG Test ----- > > Could not start kernel 'inner_prod' with global work size 1024 and local > work size 128. > > Error -54 in function start1D ( > /Users/ssoa/Downloads/ViennaCL-1.0.4/./viennacl/ocl/kernel.hpp:120 ) > CL_INVALID_WORK_GROUP_SIZE > > The supplied work group size is invalid. If you set this value manually, > please reconsider your choice. > > Thanks > > *Jason Lam > */703-367-6112/ > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Lam, J. <jas...@lm...> - 2010-07-09 14:25:46
|
Hi I am new to this OpenCL but it is looking very exciting. I am looking at the examples and if you are using ViennaCL, there is no kernel that would need to be written at all. Assuming under the layer, ViennaCL load its library of kernel to the GPU during execution. How do you configure or tell ViennaCL to execute the kernel on the CPU instead? Like when i am just writing pure OpenCL, I can specify my target device and either GPU, CPU or even others. i am not getting at performance but just getting at portability of OpenCL and the use of ViennaCL to enable that. THanks!!! Jason Lam 703-367-6112 |
From: Lam, J. <jas...@lm...> - 2010-07-08 19:58:41
|
Tutorial 4 & 5 run without error System info: OS: Mac OS X Snow Leopard ATI Radeon HD 4870 ViennaCL 1.0.4 Snow Leopard as an implementation of OpenCL. I also installed CUDA SDK. ./tut1 CPU scalar s2: 1 GPU scalar vcl_s2: 1 Could not start kernel 'inner_prod' with global work size 1024 and local work size 128. Error -54 in function start1D ( /Users/ssoa/Downloads/ViennaCL-1.0.4/./viennacl/ocl/kernel.hpp:120 ) CL_INVALID_WORK_GROUP_SIZE The supplied work group size is invalid. If you set this value manually, please reconsider your choice. ./tut2 ----- Matrix-Vector product ----- ----- Transposed Matrix-Vector product ----- ----- Upper Triangular solve ----- Could not start kernel 'upper_triangular_substitute_inplace' with global work size 128 and local work size 128. Error -54 in function start1D ( /Users/ssoa/Downloads/ViennaCL-1.0.4/./viennacl/ocl/kernel.hpp:120 ) CL_INVALID_WORK_GROUP_SIZE The supplied work group size is invalid. If you set this value manually, please reconsider your choice. ./tut3 Reading ublas matrix done reading matrix done reading rhs done reading result ----- CG Test ----- Could not start kernel 'inner_prod' with global work size 1024 and local work size 128. Error -54 in function start1D ( /Users/ssoa/Downloads/ViennaCL-1.0.4/./viennacl/ocl/kernel.hpp:120 ) CL_INVALID_WORK_GROUP_SIZE The supplied work group size is invalid. If you set this value manually, please reconsider your choice. Thanks Jason Lam 703-367-6112 |
From: Karl R. <ru...@iu...> - 2010-07-08 13:12:47
|
Dear subscribers of the ViennaCL mailing list, version 1.0.4 is now available for download. :-) The main changes over 1.0.3 are: * All tutorials now work out-of the box with Visual Studio 2008. * Eliminated all ViennaCL related warnings when compiling with Visual Studio 2008. * Better (experimental) support for double precision on ATI GPUs, but no norm_1, norm_2, norm_inf and index_norm_inf functions using ATI Stream SDK on GPUs in double precision. * Fixed a bug in GMRES that caused segmentation faults under Windows. * Fixed a bug in const_sparse_matrix_adapter (thanks to Abhinav Golas and Nico Galoppo for almost simultaneous emails on that) * Corrected incorrect return values in the sparse matrix regression test suite (thanks to Klaus Schnass for the hint) We did our best to eliminate all bugs, but if you still find one, do not hesitate to contact us: vie...@li... An alternative is to use the bug-tracker provided by sourceforge. Best regards, Karli |
From: Karl R. <ru...@iu...> - 2010-07-01 11:12:53
|
Hi Abhinav, We just got our test system with Windows 7, Visual Studio 2008 and a Radeon HD 5850 ready and it seems like there are serious problems with ublas/boost 1.42. CG and BiCGStab seem to work fine without preconditioners, but GMRES does not. Please give me a couple of days to fix it -> version 1.0.4 :-) Many thanks, Karli Abhinav Golas wrote: > Hi Karli, > > I tried your proposed fixes, as well as a number of different other > fixes, but all of them simply transfer the crash to other locations in > code. I managed to get the execution to a point in the GMRES solver, > where it crashes in the solver which runs without the preconditioner > (line 198 in tut3.cpp). > > Abhinav > > > > Dear Abhinav, > > thanks for your email and pointing that bug out. As a quick fix, I think > it is sufficient to write > iter2 = _mat[_mat.size()-1].end(); > in the else-statement. This is, however, untested, but will be fixed in > the upcoming version 1.0.4. > > In the meanwhile I can recommend using either the uBLAS types for the > initialization of the GPU data or to ensure that the STL vector< map< > > > capacity is larger than the size. This can for example be enforced by > writing > stl_matrix.reserve(rhs.size()+1); > in tut3 right after line 131. > > Again, thanks for pointing that out, our test environment did not > complain on that one. > > Best regards, > Karli > > > Abhinav Golas wrote: >> Hi, >> >> I encountered an error while running tut3, the code tried to access an >> out of range element of a vector. The relevant code section is: >> >> tools.hpp: >> >> const_sparse_matrix_adapted_iterator(std::vector<std::map<unsigned int, >> SCALARTYPE> > const & mat, int i, int j) >> : _mat(mat), _i(i), _j(j) >> { >> if (i < static_cast<int>(_mat.size()) && j < > static_cast<int>(_mat.size())) >> iter2 = _mat[i].begin(); >> else >> iter2 = _mat[i].end(); >> } >> >> for i == 65025 and _mat.size() == 65025 >> >> This is encountered for the execution stack: >> main.cpp:143 copy(stl_matrix, vcl_coordinate_matrix); >> coordinate_matrix.hpp: 217 >> copy(tools::const_sparse_matrix_adapter<SCALARTYPE>(cpu_matrix), >> gpu_matrix); >> coordinate_matrix.hpp: 166 for (typename CPU_MATRIX::const_iterator1 >> row_it = cpu_matrix.begin1(); row_it != cpu_matrix.end1(); ++row_it) >> tools.hpp: 184 const_iterator1 end1() const { return >> const_iterator1(_mat, size1(), size2()); } >> tools.hpp: 101 (code given above) >> >> I'm running this on Visual Studio 2008, on Windows 7, with Core i7 >> extreme 965, ATI Radeon 5770 with the latest stream SDK, Boost 1.42 >> >> Thanks, >> Abhinav Golas >> >> >> ------------------------------------------------------------------------ >> >> > ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first > <http://sprint.com/first> -- http://p.sf.net/sfu/sprint-com-first >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Viennacl-support mailing list >> Vie...@li... > <mailto:Vie...@li...> >> https://lists.sourceforge.net/lists/listinfo/viennacl-support > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > ------------------------------------------------------------------------ > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Abhinav G. <abh...@gm...> - 2010-06-30 23:38:24
|
Hi Karli, I tried your proposed fixes, as well as a number of different other fixes, but all of them simply transfer the crash to other locations in code. I managed to get the execution to a point in the GMRES solver, where it crashes in the solver which runs without the preconditioner (line 198 in tut3.cpp). Abhinav Dear Abhinav, thanks for your email and pointing that bug out. As a quick fix, I think it is sufficient to write iter2 = _mat[_mat.size()-1].end(); in the else-statement. This is, however, untested, but will be fixed in the upcoming version 1.0.4. In the meanwhile I can recommend using either the uBLAS types for the initialization of the GPU data or to ensure that the STL vector< map< > > capacity is larger than the size. This can for example be enforced by writing stl_matrix.reserve(rhs.size()+1); in tut3 right after line 131. Again, thanks for pointing that out, our test environment did not complain on that one. Best regards, Karli Abhinav Golas wrote: > Hi, > > I encountered an error while running tut3, the code tried to access an > out of range element of a vector. The relevant code section is: > > tools.hpp: > > const_sparse_matrix_adapted_iterator(std::vector<std::map<unsigned int, > SCALARTYPE> > const & mat, int i, int j) > : _mat(mat), _i(i), _j(j) > { > if (i < static_cast<int>(_mat.size()) && j < static_cast<int>(_mat.size())) > iter2 = _mat[i].begin(); > else > iter2 = _mat[i].end(); > } > > for i == 65025 and _mat.size() == 65025 > > This is encountered for the execution stack: > main.cpp:143 copy(stl_matrix, vcl_coordinate_matrix); > coordinate_matrix.hpp: 217 > copy(tools::const_sparse_matrix_adapter<SCALARTYPE>(cpu_matrix), > gpu_matrix); > coordinate_matrix.hpp: 166 for (typename CPU_MATRIX::const_iterator1 > row_it = cpu_matrix.begin1(); row_it != cpu_matrix.end1(); ++row_it) > tools.hpp: 184 const_iterator1 end1() const { return > const_iterator1(_mat, size1(), size2()); } > tools.hpp: 101 (code given above) > > I'm running this on Visual Studio 2008, on Windows 7, with Core i7 > extreme 965, ATI Radeon 5770 with the latest stream SDK, Boost 1.42 > > Thanks, > Abhinav Golas > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > ------------------------------------------------------------------------ > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: <mel...@ms...> - 2010-06-30 21:51:46
|
Hi, I've just recently discovered your project and I was toying around LU factorization and forward-back substitution, and in my programs, the inplace_solve function seems to break down when I invert a matrix larger than about 225x225. I'm using linux and an NVIDIA tesla C1060. Basically, when I run the viennacl inplace solve and the ublas inplace solve they produce results differing by about one index (if my matrix is (200-400)^2 ) and more indices if the matrix is larger. I tested the lu_factorize function, and that produces similar results to ublas (up to a relatively high level of significance), so I'm fairly certain the problem I'm having lies with the inplace_solve function. Here is the code I'm running: -------------------------------------------------------------------------------------------------- #include <boost/numeric/ublas/triangular.hpp> #include <boost/numeric/ublas/matrix_sparse.hpp> #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> #include <boost/numeric/ublas/lu.hpp> #include <fstream> #include "viennacl/vector.hpp" #include "viennacl/matrix.hpp" #include "viennacl/linalg/direct_solve.hpp" #include "benchmark-utils.hpp" using namespace boost::numeric; int main() { int N = 500; ublas::matrix<double> A(N,N); ublas::vector<double> b(N); ublas::vector<double> b2(N); viennacl::matrix<double> gpu_A(N,N); viennacl::vector<double> gpu_b(N); for (int i=0;i<N;i++) { for (int j=i;j<N;j++) { A(i,j)=1; } b(i)=N-i; } copy(A,gpu_A); copy(b,gpu_b); ublas::inplace_solve(A,b,ublas::upper_tag()); viennacl::linalg::inplace_solve(gpu_A,gpu_b,viennacl::linalg::upper_tag()); ublas::inplace_solve(A2,b3,ublas::upper_tag()); copy(gpu_b,b2); double err = 0; for (int i=0;i<N;i++) { if (abs(b2(i)-b(i))>err) { err=abs(b2(i)-b(i)); std::cout<<"At index "<<i<<std::endl; std::cout<<"CPU= "<<b(i)<<" and"<<std::endl; std::cout<<"GPU= "<<b2(i)<<std::endl; } } std::cout<<err<<std::endl; } -------------------------------------------------------------------------------------------------- Every time I run this there are one or two errors at different indices. Am I doing something wrong? Do you have any suggestions? Thanks in advance, Andrew Melfi |
From: Karl R. <ru...@iu...> - 2010-06-30 08:40:58
|
Dear Abhinav, thanks for your email and pointing that bug out. As a quick fix, I think it is sufficient to write iter2 = _mat[_mat.size()-1].end(); in the else-statement. This is, however, untested, but will be fixed in the upcoming version 1.0.4. In the meanwhile I can recommend using either the uBLAS types for the initialization of the GPU data or to ensure that the STL vector< map< > > capacity is larger than the size. This can for example be enforced by writing stl_matrix.reserve(rhs.size()+1); in tut3 right after line 131. Again, thanks for pointing that out, our test environment did not complain on that one. Best regards, Karli Abhinav Golas wrote: > Hi, > > I encountered an error while running tut3, the code tried to access an > out of range element of a vector. The relevant code section is: > > tools.hpp: > > const_sparse_matrix_adapted_iterator(std::vector<std::map<unsigned int, > SCALARTYPE> > const & mat, int i, int j) > : _mat(mat), _i(i), _j(j) > { > if (i < static_cast<int>(_mat.size()) && j < static_cast<int>(_mat.size())) > iter2 = _mat[i].begin(); > else > iter2 = _mat[i].end(); > } > > for i == 65025 and _mat.size() == 65025 > > This is encountered for the execution stack: > main.cpp:143 copy(stl_matrix, vcl_coordinate_matrix); > coordinate_matrix.hpp: 217 > copy(tools::const_sparse_matrix_adapter<SCALARTYPE>(cpu_matrix), > gpu_matrix); > coordinate_matrix.hpp: 166 for (typename CPU_MATRIX::const_iterator1 > row_it = cpu_matrix.begin1(); row_it != cpu_matrix.end1(); ++row_it) > tools.hpp: 184 const_iterator1 end1() const { return > const_iterator1(_mat, size1(), size2()); } > tools.hpp: 101 (code given above) > > I'm running this on Visual Studio 2008, on Windows 7, with Core i7 > extreme 965, ATI Radeon 5770 with the latest stream SDK, Boost 1.42 > > Thanks, > Abhinav Golas > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > ------------------------------------------------------------------------ > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |
From: Abhinav G. <abh...@gm...> - 2010-06-29 22:10:15
|
Hi, I encountered an error while running tut3, the code tried to access an out of range element of a vector. The relevant code section is: tools.hpp: const_sparse_matrix_adapted_iterator(std::vector<std::map<unsigned int, SCALARTYPE> > const & mat, int i, int j) : _mat(mat), _i(i), _j(j) { if (i < static_cast<int>(_mat.size()) && j < static_cast<int>(_mat.size())) iter2 = _mat[i].begin(); else iter2 = _mat[i].end(); } for i == 65025 and _mat.size() == 65025 This is encountered for the execution stack: main.cpp:143 copy(stl_matrix, vcl_coordinate_matrix); coordinate_matrix.hpp: 217 copy(tools::const_sparse_matrix_adapter<SCALARTYPE>(cpu_matrix), gpu_matrix); coordinate_matrix.hpp: 166 for (typename CPU_MATRIX::const_iterator1 row_it = cpu_matrix.begin1(); row_it != cpu_matrix.end1(); ++row_it) tools.hpp: 184 const_iterator1 end1() const { return const_iterator1(_mat, size1(), size2()); } tools.hpp: 101 (code given above) I'm running this on Visual Studio 2008, on Windows 7, with Core i7 extreme 965, ATI Radeon 5770 with the latest stream SDK, Boost 1.42 Thanks, Abhinav Golas |
From: Karl R. <ru...@iu...> - 2010-06-28 17:05:30
|
Hello Salomon, the answer to the problems is given here: http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=88 Seems like I have not read through the page carefully enough: The built-in functions sqrt, fabs, fmax and the like for double precision are only available on CPUs, but not on GPUs. Thus, the compilation fails for your Radeon HD 5850. As a remedy, you can do the following: * Open the file viennacl/linalg/kernels/vector_kernels.h * Comment or delete the lines 355, 356, 357 and 365 (This excludes norm_1, norm_2, norm_inf and index_norm_inf from the compilation process) This should fix the issue for Radeon GPUs. However, you cannot use the norm functions then, hence the GMRES-solver will not work. However, the CG and BiCGStab solver are unaffected. If you need the GMRES-solver anyway, you have to replace the norm_2(v) calls (lines 101 and 151) by sqrt(inner_prod(v,v)); calls in viennacl/linalg/gmres.hpp Hope this helps :-) Best regards, Karli salomon wrote: > Hi, > > I get the error from your 'vectorbench' function that comes with the > ViennaCL 1.0.3 distribution, even before I have modified it for my own > purposes. If it helps, I get the same error as soon as I try to > initialise a viennacl vector in double precision. > > Kind regards, > Salomon > > > > On Fri, 2010-06-25 at 17:08 +0200, ru...@iu... wrote: >> Quoting salomon <145...@su...>: >> >>> Hi, >>> >>> I have updated to 10.6. However, I still get the same error? >>> >>> Regards >>> Salomon >>> >> Okay, could you please send a sample code to the mailinglist? >> >> Best regards, >> Karli >> > > > |
From: <ru...@iu...> - 2010-06-25 11:15:27
|
Hi, > 1) I am working under Ubuntu 9.10 as my OS. Okay, this should not cause the issue then. > Could it be that my ATI driver is outdated? This is what I suppose. We used version 10.4 of the Catalyst driver for our tests, which - as far as I remember - is recommended with Stream SDK 2.1. Please update you driver and let us know whether this caused the issue. Best regards, Karli |
From: <ru...@iu...> - 2010-06-25 09:18:25
|
Hi Salomon, Thanks for your enquiry. A couple of questions: * Which operating system do you use? We have observed that for some reasons the experimental double precision support works fine under Linux, while it may give the error you mentioned under Windows. From the file paths you provided I assume that you are using Linux, so it is not an OS-related issue. * Did set the preprocessor constant to unlock double precision support as explained in the manual, i.e. prior to any other ViennaCL includes? * Which version of the ATI driver (not the SDK) are you using? In any case, you do not have to touch any OpenCL code, this can be all handled in C++ :-) Best regards, Karli Quoting salomon <145...@su...>: > Hi ViennaCL team, > > I would like to use your double precision version of the matrix vector > multiplication function. However, I receive the following error message: > > ------------------------------- > # benchmarking double-precision > ------------------------------- > Error -11 in function create > ( /home/salomon/ATI/ViennaCL-1.0.3/./viennacl/ocl/program.hpp:77 ) > CL_BUILD_PROGRAM_FAILURE > Segmentation fault > > This is when I try to run the vectorbench program. I am working with an > ATI Radeon HD 5850 card and am using ViennaCL 1.0.3 and ATI Stream SDK > 2.1. I am aware that there is only experimental support for double > precision on ATI cards, but that would be sufficient for my purposes. > > How can I solve this error? Any help would be appreciated as I am not > very familiar with OpenCL. > > Thank you > Salomon > > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support > > |
From: salomon <145...@su...> - 2010-06-25 02:17:35
|
Hi ViennaCL team, I would like to use your double precision version of the matrix vector multiplication function. However, I receive the following error message: ------------------------------- # benchmarking double-precision ------------------------------- Error -11 in function create ( /home/salomon/ATI/ViennaCL-1.0.3/./viennacl/ocl/program.hpp:77 ) CL_BUILD_PROGRAM_FAILURE Segmentation fault This is when I try to run the vectorbench program. I am working with an ATI Radeon HD 5850 card and am using ViennaCL 1.0.3 and ATI Stream SDK 2.1. I am aware that there is only experimental support for double precision on ATI cards, but that would be sufficient for my purposes. How can I solve this error? Any help would be appreciated as I am not very familiar with OpenCL. Thank you Salomon |
From: Karl R. <ru...@iu...> - 2010-05-28 21:02:01
|
Dear all, we are proud to announce the first release of ViennaCL. Even though some of the planned features did not make it into the first release, we are very happy to able to provide the following: * Generic implementation of the three main iterative solvers: - Conjugate Gradients (CG) - Stabilized BiConjugate Gradients (BiCGStab) - Generalized Minimal Residual Method (GMRES) * Optional incomplete LU preconditioner with threshold (ILUT) * ublas (from boost) compatible interface - The solvers and preconditioners can be used either for computations on the GPU or directly using ublas objects * Support for GPUs from NVidia and AMD via OpenCL. We worked really hard in order to find and eliminate all bugs. For the case that we have missed still one, please report it at the bug tracking system: https://sourceforge.net/tracker/?group_id=322140&atid=1353700 or write to the mailing list at vie...@li.... Best regards, Karli |