"Works" doing that pom hack but agreed need to make it work without it.
On Mon, Oct 17, 2016 at 10:41 AM, Andrew Musselman < andrew.mussel...@gmail.com> wrote: > No this was with the -omp profile; I'm going to try out his hack now for > non-omp. > > On Mon, Oct 17, 2016 at 10:15 AM, Andrew Palumbo <ap....@outlook.com> > wrote: > >> That is weird.. did u tried it with Trevor's fix? >> >> >> >> Sent from my Verizon Wireless 4G LTE smartphone >> >> >> -------- Original message -------- >> From: Andrew Musselman <andrew.mussel...@gmail.com> >> Date: 10/17/2016 10:11 AM (GMT-08:00) >> To: dev@mahout.apache.org >> Subject: Re: Trying out PR 261 >> >> I got the error before setting Xmx however. >> >> On Mon, Oct 17, 2016 at 10:03 AM, Andrew Palumbo <ap....@outlook.com> >> wrote: >> >> > I think that the memory should be set to 3 or 4G in the tests in >> > pom.xml.. maybe you're o erring that setting? >> > >> > >> > >> > Sent from my Verizon Wireless 4G LTE smartphone >> > >> > >> > -------- Original message -------- >> > From: Andrew Musselman <andrew.mussel...@gmail.com> >> > Date: 10/17/2016 9:47 AM (GMT-08:00) >> > To: dev@mahout.apache.org >> > Subject: Re: Trying out PR 261 >> > >> > Using the viennacl-omp profile I'm getting an out of memory error even >> with >> > Xmx set in MAHOUT_OPTS to 1g: >> > >> > - mmul microbenchmark >> > + Mahout multiplication time: 8920 ms. >> > + ViennaCL/cpu/OpenMP multiplication time: 616 ms. >> > - trans >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > [INFO] Unable to create class OMPMMul: falling back to java version >> > *** RUN ABORTED *** >> > java.lang.OutOfMemoryError: Java heap space >> > at >> > it.unimi.dsi.fastutil.ints.Int2DoubleOpenHashMap.rehash( >> > Int2DoubleOpenHashMap.java:1059) >> > at >> > it.unimi.dsi.fastutil.ints.Int2DoubleOpenHashMap.insert( >> > Int2DoubleOpenHashMap.java:295) >> > at >> > it.unimi.dsi.fastutil.ints.Int2DoubleOpenHashMap.put( >> > Int2DoubleOpenHashMap.java:301) >> > at >> > org.apache.mahout.math.RandomAccessSparseVector.setQuick( >> > RandomAccessSparseVector.java:130) >> > at >> > org.apache.mahout.math.SparseRowMatrix.setQuick(SparseRowMat >> rix.java:105) >> > at org.apache.mahout.math.AbstractMatrix.assign(AbstractMatrix. >> java:256) >> > at >> > org.apache.mahout.math.scalabindings.MatrixOps.$ >> > colon$eq(MatrixOps.scala:192) >> > at >> > org.apache.mahout.math.scalabindings.MatrixOps.cloned( >> MatrixOps.scala:260) >> > at >> > org.apache.mahout.math.scalabindings.MatrixOps.$minus( >> MatrixOps.scala:66) >> > at >> > org.apache.mahout.viennacl.openmp.ViennaCLSuiteOMP$$ >> > anonfun$4.apply$mcV$sp(ViennaCLSuiteOMP.scala:152) >> > ... >> > [INFO] >> > ------------------------------------------------------------ >> ------------ >> > [INFO] Reactor Summary: >> > [INFO] >> > [INFO] Mahout Build Tools ................................. SUCCESS [ >> > 1.131 s] >> > [INFO] Apache Mahout ...................................... SUCCESS [ >> > 0.023 s] >> > [INFO] Mahout Math ........................................ SUCCESS [ >> > 31.439 s] >> > [INFO] Mahout HDFS ........................................ SUCCESS [ >> > 2.151 s] >> > [INFO] Mahout Math Scala bindings ......................... SUCCESS >> [02:30 >> > min] >> > [INFO] Mahout Spark bindings .............................. SUCCESS [ >> > 43.884 s] >> > [INFO] Mahout Flink bindings .............................. SUCCESS >> [04:13 >> > min] >> > [INFO] Mahout Spark bindings shell ........................ SUCCESS [ >> > 4.071 s] >> > [INFO] Mahout Release Package ............................. SUCCESS [ >> > 1.311 s] >> > [INFO] Mahout H2O backend ................................. SUCCESS >> [02:50 >> > min] >> > [INFO] Mahout Native VienniaCL OpenMP Bindings ............ FAILURE [ >> > 36.106 s] >> > >> > On Sun, Oct 16, 2016 at 9:43 PM, Trevor Grant <trevor.d.gr...@gmail.com >> > >> > wrote: >> > >> > > NOTE: >> > > >> > > The last solution creates a cyclical dependency- >> > > >> > > The way I made it work was happen-stance. >> > > >> > > 1) >> > > mvn clean install -Pviennacl -Phadoop2 -DskipTests >> > > >> > > 2) >> > > update the pom as described previously >> > > >> > > 3) >> > > cd math-scala >> > > >> > > 4) >> > > mvn test >> > > >> > > that will make it work- hacky but POC. >> > > >> > > Next how to do this 'right'. >> > > >> > > tg >> > > >> > > >> > > >> > > Trevor Grant >> > > Data Scientist >> > > https://github.com/rawkintrevo >> > > http://stackexchange.com/users/3002022/rawkintrevo >> > > http://trevorgrant.org >> > > >> > > *"Fortunate is he, who is able to know the causes of things." >> -Virgil* >> > > >> > > >> > > On Sun, Oct 16, 2016 at 11:29 PM, Trevor Grant < >> trevor.d.gr...@gmail.com >> > > >> > > wrote: >> > > >> > > > Maybe not the long term fix, but adding >> > > > >> > > > <dependency> >> > > > <groupId>org.apache.mahout</groupId> >> > > > <artifactId>mahout-native-viennacl_${scala.compat. >> > > > version}</artifactId> >> > > > <scope>test</scope> >> > > > </dependency> >> > > > >> > > > to math-scala/pom.xml seems to fix the afore mentioned errors >> > > > >> > > > >> > > > Trevor Grant >> > > > Data Scientist >> > > > https://github.com/rawkintrevo >> > > > http://stackexchange.com/users/3002022/rawkintrevo >> > > > http://trevorgrant.org >> > > > >> > > > *"Fortunate is he, who is able to know the causes of things." >> -Virgil* >> > > > >> > > > >> > > > On Sun, Oct 16, 2016 at 10:23 PM, Andrew Palumbo < >> ap....@outlook.com> >> > > > wrote: >> > > > >> > > >> Thanks Trevor and Andrew- I think that both of your environments >> are >> > > >> fine.. (Ubuntu 16.04 was just to recommended because ViennaCL >> 1.7.1 is >> > > >> easily installed with sudo-apt-get install. As logn as you have >> 1.7.1 >> > > on >> > > >> the correct path, you should be fine. >> > > >> >> > > >> >> > > >> I'm getting these errors now also, and by viewing the stack trace, >> I >> > can >> > > >> see that the mahout_native_vienniacl*.jars did not make it onto the >> > > >> classpath some how: >> > > >> >> > > >> >> > > >> [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> java.lang.ClassNotFoundException: org.apache.mahout.viennacl.ope >> > > >> ncl.GPUMMul$ >> > > >> at java.net.URLClassLoader.findClass(URLClassLoader.java:381) >> > > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >> > > >> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: >> 331) >> > > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >> > > >> at java.lang.Class.forName0(Native Method) >> > > >> at java.lang.Class.forName(Class.java:264) >> > > >> at org.apache.mahout.math.scalabi >> ndings.SolverFactory$.getOpera >> > > >> tor(SolverFactory.scala:50) >> > > >> >> > > >> >> > > >> I think that i might have merged some conflicts badly when I >> rebased >> > > last >> > > >> week, because I was not seeing these errors. I'll tey to get this >> > > worked >> > > >> out in the next couple of days. >> > > >> >> > > >> >> > > >> >> > > >> ________________________________ >> > > >> From: Trevor Grant <trevor.d.gr...@gmail.com> >> > > >> Sent: Sunday, October 16, 2016 11:04:46 PM >> > > >> To: dev@mahout.apache.org >> > > >> Subject: Re: Trying out PR 261 >> > > >> >> > > >> Having similar issues- >> > > >> >> > > >> Running 14.04 (I know, supposed to be 16.04, but whatever bear with >> > me) >> > > >> >> > > >> Downloaded viennacl source, unzipped tar-dir/viennacl to >> > > >> /usr/include/viennacl (e.g. 'installed' viennacl 1.7.1) >> > > >> >> > > >> Updated gcc (though I don't think this was neccessary, now that I >> see >> > > >> Andrew M was having the same issues) >> > > >> sudo add-apt-repository ppa:ubuntu-toolchain-r/test >> > > >> sudo apt-get update >> > > >> sudo apt-get install gcc-5 g++-5 >> > > >> >> > > >> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 >> 0 >> > > >> --slave /usr/bin/g++ g++ /usr/bin/g++-5 >> > > >> >> > > >> >> > > >> System / GPU info >> > > >> +------------------------------------------------------+ >> > > >> >> > > >> | NVIDIA-SMI 352.63 Driver Version: 352.63 | >> > > >> >> > > >> |-------------------------------+----------------------+---- >> > > >> ------------------+ >> > > >> | GPU Name Persistence-M| Bus-Id Disp.A | Volatile >> > > Uncorr. >> > > >> ECC | >> > > >> | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util >> > > Compute >> > > >> M. | >> > > >> |===============================+======================+==== >> > > >> ==================| >> > > >> | 0 GeForce GT 740 Off | 0000:02:00.0 N/A | >> > > >> N/A | >> > > >> | 33% 34C P8 N/A / N/A | 411MiB / 1021MiB | N/A >> > > >> Default | >> > > >> +-------------------------------+----------------------+---- >> > > >> ------------------+ >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> Build was successful- no problems there. >> > > >> >> > > >> Still getting a slew of: >> > > >> >> > > >> [32mMatlabLikeMatrixOpsSuite: [0m >> > > >> [32m- multiplication [0m >> > > >> [32m- Hadamard [0m >> > > >> [32mRLikeVectorOpsSuite: [0m >> > > >> [32m- Hadamard [0m >> > > >> 19489 [ScalaTest-main-running-RLikeVectorOpsSuite] DEBUG >> > > >> org.apache.mahout.math.scalabindings.RLikeVectorOpsSuite - dense >> > > vector >> > > >> dots:127.00 ms. >> > > >> 19489 [ScalaTest-main-running-RLikeVectorOpsSuite] DEBUG >> > > >> org.apache.mahout.math.scalabindings.RLikeVectorOpsSuite - dense >> > view >> > > >> dots:201.00 ms. >> > > >> [32m- dot-view performance [0m >> > > >> [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> [INFO] Unable to create class OMPMMul: falling back to java version >> > > >> 19491 [ScalaTest-main-running-MathSuite] DEBUG >> > > >> org.apache.mahout.math.scalabindings.MMul$ - AAt computation >> > detected. >> > > >> [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> [INFO] Unable to create class OMPMMul: falling back to java version >> > > >> [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> [INFO] Unable to create class OMPMMul: falling back to java version >> > > >> ... goes on like that for a long long time >> > > >> >> > > >> >> > > >> >> > > >> Trevor Grant >> > > >> Data Scientist >> > > >> https://github.com/rawkintrevo >> > > >> http://stackexchange.com/users/3002022/rawkintrevo >> > > >> http://trevorgrant.org >> > > >> >> > > >> *"Fortunate is he, who is able to know the causes of things." >> > -Virgil* >> > > >> >> > > >> >> > > >> On Sun, Oct 16, 2016 at 6:59 PM, Andrew Musselman < >> > > >> andrew.mussel...@gmail.com> wrote: >> > > >> >> > > >> > I'm not sure my setup is correct; on Ubuntu 16.04 I'm getting a >> > > >> firehose of >> > > >> > infos and warns about not finding the GPUMMul and OMPMMul >> classes. >> > > I've >> > > >> > installed libviennacl-dev 1.7.1 through apt-get. Any ideas? >> > > >> > >> > > >> > Here's repro: >> > > >> > $ git fetch origin pull/261/head:viennacl-opmmul-a >> > > >> > $ mvn clean install -Pviennacl -Phadoop2 >> > > >> > >> > > >> > Infos and warns (these are littered consistently throughout test >> > > logs): >> > > >> > %*% B mapBlock {} >> > > >> > - C = A %*% B incompatible B keys >> > > >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> > [INFO] Unable to create class OMPMMul: falling back to java >> version >> > > >> > - Spark-specific C = At %*% B , join >> > > >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> > [INFO] Unable to create class OMPMMul: falling back to java >> version >> > > >> > - C = At %*% B , join, String-keyed >> > > >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> > [INFO] Unable to create class OMPMMul: falling back to java >> version >> > > >> > - C = At %*% B , zippable, String-keyed >> > > >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> > [INFO] Unable to create class OMPMMul: falling back to java >> version >> > > >> > - C = A %*% B.t >> > > >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> > [INFO] Unable to create class OMPMMul: falling back to java >> version >> > > >> > { >> > > >> > 0 => {0:26.0,1:35.0,2:46.0,3:51.0} >> > > >> > 1 => {0:50.0,1:69.0,2:92.0,3:105.0} >> > > >> > 2 => {0:62.0,1:86.0,2:115.0,3:132.0} >> > > >> > 3 => {0:74.0,1:103.0,2:138.0,3:159.0} >> > > >> > } >> > > >> > - C = A %*% inCoreB >> > > >> > [INFO] Creating org.apache.mahout.viennacl.opencl.GPUMMul solver >> > > >> > [WARN] Unable to create class GPUMMul: attempting OpenMP version >> > > >> > [INFO] Creating org.apache.mahout.viennacl.openmp.OMPMMul solver >> > > >> > [INFO] Unable to create class OMPMMul: falling back to java >> version >> > > >> > { >> > > >> > 0 => {0:26.0,1:35.0,2:46.0,3:51.0} >> > > >> > 1 => {0:50.0,1:69.0,2:92.0,3:105.0} >> > > >> > 2 => {0:62.0,1:86.0,2:115.0,3:132.0} >> > > >> > 3 => {0:74.0,1:103.0,2:138.0,3:159.0} >> > > >> > } >> > > >> > >> > > >> > Output of `clinfo`: >> > > >> > $ clinfo >> > > >> > Number of platforms 1 >> > > >> > Platform Name NVIDIA CUDA >> > > >> > Platform Vendor NVIDIA >> Corporation >> > > >> > Platform Version OpenCL 1.2 CUDA >> > > 8.0.0 >> > > >> > Platform Profile FULL_PROFILE >> > > >> > Platform Extensions >> > > >> > cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_ >> > atomics >> > > >> > cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_at >> omics >> > > >> > cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd >> > cl_khr_gl_sharing >> > > >> > cl_nv_compiler_options cl_nv_device_attribute_query >> > > cl_nv_pragma_unroll >> > > >> > cl_nv_copy_opts >> > > >> > Platform Extensions function suffix NV >> > > >> > >> > > >> > Platform Name NVIDIA CUDA >> > > >> > Number of devices 1 >> > > >> > Device Name GeForce GTX >> 750 Ti >> > > >> > Device Vendor NVIDIA >> Corporation >> > > >> > Device Vendor ID 0x10de >> > > >> > Device Version OpenCL 1.2 CUDA >> > > >> > Driver Version 367.44 >> > > >> > Device OpenCL C Version OpenCL C 1.2 >> > > >> > Device Type GPU >> > > >> > Device Profile FULL_PROFILE >> > > >> > Device Topology (NV) PCI-E, 01:00.0 >> > > >> > Max compute units 5 >> > > >> > Max clock frequency 1150MHz >> > > >> > Compute Capability (NV) 5.0 >> > > >> > Device Partition (core) >> > > >> > Max number of sub-devices 1 >> > > >> > Supported partition types None >> > > >> > Max work item dimensions 3 >> > > >> > Max work item sizes 1024x1024x64 >> > > >> > Max work group size 1024 >> > > >> > Preferred work group size multiple 32 >> > > >> > Warp size (NV) 32 >> > > >> > Preferred / native vector sizes >> > > >> > char 1 / 1 >> > > >> > short 1 / 1 >> > > >> > int 1 / 1 >> > > >> > long 1 / 1 >> > > >> > half 0 / 0 >> > > >> (n/a) >> > > >> > float 1 / 1 >> > > >> > double 1 / 1 >> > > >> > (cl_khr_fp64) >> > > >> > Half-precision Floating-point support (n/a) >> > > >> > Single-precision Floating-point support (core) >> > > >> > Denormals Yes >> > > >> > Infinity and NANs Yes >> > > >> > Round to nearest Yes >> > > >> > Round to zero Yes >> > > >> > Round to infinity Yes >> > > >> > IEEE754-2008 fused multiply-add Yes >> > > >> > Support is emulated in software No >> > > >> > Correctly-rounded divide and sqrt operations Yes >> > > >> > Double-precision Floating-point support (cl_khr_fp64) >> > > >> > Denormals Yes >> > > >> > Infinity and NANs Yes >> > > >> > Round to nearest Yes >> > > >> > Round to zero Yes >> > > >> > Round to infinity Yes >> > > >> > IEEE754-2008 fused multiply-add Yes >> > > >> > Support is emulated in software No >> > > >> > Correctly-rounded divide and sqrt operations No >> > > >> > Address bits 64, >> Little-Endian >> > > >> > Global memory size 2095841280 >> > > (1.952GiB) >> > > >> > Error Correction support No >> > > >> > Max memory allocation 523960320 >> > (499.7MiB) >> > > >> > Unified memory for Host and Device No >> > > >> > Integrated memory (NV) No >> > > >> > Minimum alignment for any data type 128 bytes >> > > >> > Alignment of base address 4096 bits (512 >> > > bytes) >> > > >> > Global Memory cache type Read/Write >> > > >> > Global Memory cache size 81920 >> > > >> > Global Memory cache line 128 bytes >> > > >> > Image support Yes >> > > >> > Max number of samplers per kernel 32 >> > > >> > Max size for 1D images from buffer 134217728 >> pixels >> > > >> > Max 1D or 2D image array size 2048 images >> > > >> > Max 2D image size 16384x16384 >> pixels >> > > >> > Max 3D image size 4096x4096x4096 >> > > pixels >> > > >> > Max number of read image args 256 >> > > >> > Max number of write image args 16 >> > > >> > Local memory type Local >> > > >> > Local memory size 49152 (48KiB) >> > > >> > Registers per block (NV) 65536 >> > > >> > Max constant buffer size 65536 (64KiB) >> > > >> > Max number of constant args 9 >> > > >> > Max size of kernel argument 4352 (4.25KiB) >> > > >> > Queue properties >> > > >> > Out-of-order execution Yes >> > > >> > Profiling Yes >> > > >> > Prefer user sync for interop No >> > > >> > Profiling timer resolution 1000ns >> > > >> > Execution capabilities >> > > >> > Run OpenCL kernels Yes >> > > >> > Run native kernels No >> > > >> > Kernel execution timeout (NV) Yes >> > > >> > Concurrent copy and kernel execution (NV) Yes >> > > >> > Number of async copy engines 1 >> > > >> > printf() buffer size 1048576 >> (1024KiB) >> > > >> > Built-in kernels >> > > >> > Device Available Yes >> > > >> > Compiler Available Yes >> > > >> > Linker Available Yes >> > > >> > Device Extensions >> > > >> > cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_ >> > atomics >> > > >> > cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_at >> omics >> > > >> > cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd >> > cl_khr_gl_sharing >> > > >> > cl_nv_compiler_options cl_nv_device_attribute_query >> > > cl_nv_pragma_unroll >> > > >> > cl_nv_copy_opts >> > > >> > >> > > >> > NULL platform behavior >> > > >> > clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) NVIDIA CUDA >> > > >> > clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [NV] >> > > >> > clCreateContext(NULL, ...) [default] Success [NV] >> > > >> > clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices >> > found >> > > in >> > > >> > platform >> > > >> > clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No platform >> > > >> > clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No >> > > devices >> > > >> > found in platform >> > > >> > clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No >> devices >> > > >> found in >> > > >> > platform >> > > >> > clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No platform >> > > >> > >> > > >> > ICD loader properties >> > > >> > ICD loader Name OpenCL ICD >> Loader >> > > >> > ICD loader Vendor OCL Icd free >> > > software >> > > >> > ICD loader Version 2.2.8 >> > > >> > ICD loader Profile OpenCL 1.2 >> > > >> > NOTE: your OpenCL library declares to support OpenCL 1.2, >> > > >> > but it seems to support up to OpenCL 2.1 too. >> > > >> > >> > > >> >> > > > >> > > > >> > > >> > >> > >