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.scalabindings.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_atomics >> > 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_atomics >> > 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. >> > >> > >