Giter Site home page Giter Site logo

GPU on Windows about fmlr HOT 16 OPEN

fml-fam avatar fml-fam commented on June 16, 2024
GPU on Windows

from fmlr.

Comments (16)

wrathematics avatar wrathematics commented on June 16, 2024 1

Interesting! Looks like that's the issue. Let me add quotes to everything...

from fmlr.

mpancia avatar mpancia commented on June 16, 2024 1

No worries. I really appreciate your patience working with me so far.

We are finally at the CUDA problems! Sorry this took so much of your time so far. I really thought the makefile was in good enough shape that we would start here...

Well apparently (and I really should have seen this coming) Windows CUDA only supports Microsoft's VC++. I have no idea if installing that and setting the compiler to cl.exe in ~/.R/Makevars.win would work, although I doubt it. I'm trying to find more information at the moment.

You're doing God's work by trying to grapple with any Windows-related compiler issues, so this is the least I can do. Let me know how I can help.

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

Here you go.

I'm doing this with CUDA 10.2, and the ls of my CUDA dir is:

CUDA_Toolkit_Release_Notes.txt  doc      lib      nvvm   tools
EULA.txt                        extras   libnvvp  nvvmx  version.txt
bin                             include  nvml     src

I get a compilation error. Here is the output of R CMD INSTALL:

$ R CMD INSTALL fmlr/
* installing to library 'C:/Users/Matthew Pancia/R/win-library/3.6'
* installing *source* package 'fmlr' ...
** using staged installation
** libs

*** arch - i386
c:/Rtools/mingw_32/bin/gcc  -I"C:/PROGRA~1/R/R-36~1.3/include" -DNDEBUG -I../inst/include -I"C:/Users/Matthew Pancia/R/win-library/3.6/float/include"        -O3 -Wall  -std=gnu99 -mtune=core2 -c fmlr-native.c -o fmlr-native.o
c:/Rtools/mingw_32/bin/g++ -m32 -std=c++1y  -I"C:/PROGRA~1/R/R-36~1.3/include" -DNDEBUG -I../inst/include -I"C:/Users/Matthew Pancia/R/win-library/3.6/float/include"     -fopenmp   -O3 -Wno-unused-variable -Wno-unused-function -c cpumat.cpp -o cpumat.o
In file included from ../inst/include/fml/src/cpu/cpumat.hh:25:0,
                 from cpumat.cpp:9:
../inst/include/fml/src/cpu/cpuvec.hh: In member function 'void cpuvec<T>::info() const':
../inst/include/fml/src/cpu/cpuvec.hh:276:42: error: must #include <typeinfo> before using typeid
   fml::print::printf(" type=%s", typeid(T).name());
                                          ^
In file included from cpumat.cpp:9:0:
../inst/include/fml/src/cpu/cpumat.hh: In member function 'void cpumat<REAL>::info() const':
../inst/include/fml/src/cpu/cpumat.hh:308:45: error: must #include <typeinfo> before using typeid
   fml::print::printf(" type=%s", typeid(REAL).name());
                                             ^
make: *** [C:/PROGRA~1/R/R-36~1.3/etc/i386/Makeconf:215: cpumat.o] Error 1
ERROR: compilation failed for package 'fmlr'
* removing 'C:/Users/Matthew Pancia/R/win-library/3.6/fmlr'

Here's my normal sessionInfo() (also using the latest version of Rtools40):

R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.6.3 tools_3.6.3   

I'm not sure what other debug info would be useful. Let me know.

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

Thanks!

It looks like it's not getting the correct C++14 flag. WRE says this

Note that Windows builds prior to R 4.0.0 used g++ 4.9.x which had only partial C++14 support, and the flag to obtain that support was not included in the default Windows build of R

I would have assumed that Rtools would be the limiting factor though, not the R version. And you have the latest Rtools.

Could you tell me the directory contents of lib and nvml? I definitely have some CUDA paths wrong in the Makefile.

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

It's potentially related to that, because this happens after I apply the fix listed here: https://community.rstudio.com/t/error-in-shlib-internal-args-c-14-standard-requested-but-cxx14-is-not-defined/16819

If not for that, I get the error:

Error in .shlib_internal(args) :
  C++14 standard requested but CXX14 is not defined
* removing 'C:/Users/Matthew Pancia/R/win-library/3.6/fmlr'

lib looks like:

Win32  x64

nvml looks like:

example

Not much going on.

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

Thanks. Linking with NVML on Windows may prove interesting. Hopefully it's in lib/${ARCH} somewhere. I've updated Makevars.win to something that's got to be closer to the right thing though.

My guess is that your R version doesn't support C++14 but your Rtools does, so changing your CXX14FLAGS line in~/.R/Makevars.win from -std=c++1y to -std=c++14 might work. If not, I may just have to set the required R version to 4.0.0 for Windows support.

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

Hah! I get a different error after upgrading to R 4.0.0 (shows how much I use Windows). Looks like it's some weird thing involving the fact that my user name has a space and a lack of string quoting? Sorry, this may be stuff related to general weird Windows Things that I just don't get -- I don't use it much.

$ R CMD INSTALL fmlr/
* installing to library 'C:/Users/Matthew Pancia/R/win-library/4.0'
* installing *source* package 'fmlr' ...
** using staged installation
** libs

*** arch - i386
"C:/rtools40/mingw32/bin/"gcc  -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'        -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign -c fmlr-native.c -o fmlr-native.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c cpumat.cpp -o cpumat.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c cpuvec.cpp -o cpuvec.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c dimops-cpu.cpp -o dimops-cpu.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c helpers-cpu.cpp -o helpers-cpu.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c linalg-cpu.cpp -o linalg-cpu.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c stats-cpu.cpp -o stats-cpu.o
In file included from ../inst/include/fml/src/cpu/cpumat.hh:25,
                 from stats-cpu.cpp:5:
../inst/include/fml/src/cpu/cpuvec.hh: In function 'int linalg::{anonymous}::svd_internals(int, int, cpumat<REAL>&, cpuvec<T>&, cpumat<REAL>&, cpumat<REAL>&) [with REAL = double]':
../inst/include/fml/src/cpu/cpuvec.hh:497:14: warning: '*((void*)& work +4)' may
be used uninitialized in this function [-Wmaybe-uninitialized]
     std::free(this->data);
     ~~~~~~~~~^~~~~~~~~~~~
In file included from ../inst/include/fml/src/cpu/stats.hh:11,
                 from stats-cpu.cpp:6:
../inst/include/fml/src/cpu/linalg.hh:507:20: note: '*((void*)& work +4)' was declared here
       cpuvec<REAL> work(lwork);
                    ^~~~
In file included from ../inst/include/fml/src/cpu/cpumat.hh:25,
                 from stats-cpu.cpp:5:
../inst/include/fml/src/cpu/cpuvec.hh: In function 'int linalg::{anonymous}::svd_internals(int, int, cpumat<REAL>&, cpuvec<T>&, cpumat<REAL>&, cpumat<REAL>&) [with REAL = float]':
../inst/include/fml/src/cpu/cpuvec.hh:497:14: warning: '*((void*)& work +4)' may
be used uninitialized in this function [-Wmaybe-uninitialized]
     std::free(this->data);
     ~~~~~~~~~^~~~~~~~~~~~
In file included from ../inst/include/fml/src/cpu/stats.hh:11,
                 from stats-cpu.cpp:6:
../inst/include/fml/src/cpu/linalg.hh:507:20: note: '*((void*)& work +4)' was declared here
       cpuvec<REAL> work(lwork);
                    ^~~~
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c mpi-dummy-bindings.cpp -o mpi-dummy-bindings.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c gpu-dummy-bindings.cpp -o gpu-dummy-bindings.o
C:/rtools40/mingw32/bin/g++ -shared -s -static-libgcc -o fmlr.dll tmp.def fmlr-native.o cpumat.o cpuvec.o dimops-cpu.o helpers-cpu.o linalg-cpu.o stats-cpu.o mpi-dummy-bindings.o gpu-dummy-bindings.o C:/Users/Matthew Pancia/R/win-library/4.0/float/libs/i386/libfloat.a -LC:/PROGRA~1/R/R-40~1.0/bin/i386 -lRlapack -LC:/PROGRA~1/R/R-40~1.0/bin/i386 -lRblas -lgfortran -lm -lquadmath -fopenmp -LC:/PROGRA~1/R/R-40~1.0/bin/i386 -lR
g++.exe: error: C:/Users/Matthew: No such file or directory
g++.exe: error: Pancia/R/win-library/4.0/float/libs/i386/libfloat.a: No such file or directory
no DLL was created
ERROR: compilation failed for package 'fmlr'
* removing 'C:/Users/Matthew Pancia/R/win-library/4.0/fmlr'

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

I think that should do it...

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

The quotes might have fixed it, but your prior commit seems to have broken something with the if statement on the architecture -- I get this error both on master and master~1:

$ R CMD INSTALL .
* installing to library 'C:/Users/Matthew Pancia/R/win-library/4.0'
* installing *source* package 'fmlr' ...
** using staged installation
** libs

*** arch - i386
Makevars.win:37: *** Unknown arch.  Stop.
ERROR: compilation failed for package 'fmlr'
* removing 'C:/Users/Matthew Pancia/R/win-library/4.0/fmlr'

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

Ok, I think I have the arch selector right now based on a re-reading of WRE...

Thanks so much again for all the help so far!

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

Well, it does seem to compile now, but it doesn't seem to compile with GPU support? Maybe the flag is ignored for some reason? When running your sample code, I get the error:

suppressMessages(library(fmlr))
c = card()
#> Warning in .subset2(public_bind_env, "initialize")(...): fmlr built without GPU
#> support; this does nothing
c
#> Warning in self$info(): fmlr built without GPU support; this does nothing

x = gpumat(c, 3, 2)
#> Warning in x$valid_card(): fmlr built without GPU support; this does nothing
#> Error in check_is_card(card): invalid card object
x$fill_linspace(1, 6)
#> Error in eval(expr, envir, enclos): object 'x' not found
x$info()
#> Error in eval(expr, envir, enclos): object 'x' not found
x
#> Error in eval(expr, envir, enclos): object 'x' not found

Attached is my Makevars.win

USE_GPU = "TRUE"
CUDA_DIR = "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2"

USE_MPI = "FALSE"



# ------------------------------------------------------------------------------
CXX_STD = CXX14

R_SCMD = ${R_HOME}/bin${R_ARCH_BIN}/Rscript -e

# this is exactly what it looks like
$(shell ${R_SCMD} "cat(paste(sub('@USE_MPI@', '"${USE_MPI}"', sub('@USE_GPU@', '"${USE_GPU}"', readLines('../R/02-features.r.in'))), collapse='\n'), file='../R/02-features.r')")

FML_CPPFLAGS = -I../inst/include

ifeq "$(USE_MPI)" "TRUE"
MPI_INCLUDE = $(shell ${R_SCMD} "library(pbdMPI);get.conf('MPI_INCLUDE','"${R_ARCH}"','pbdMPI')")
SPMD_CPPFLAGS = -I"$(MPI_INCLUDE)"
SPMD_LDFLAGS = $(shell ${R_SCMD} "library(pbdMPI);get.conf('MPI_LIB','"${R_ARCH}"','pbdMPI')")
SLAP_LDFLAGS = $(shell ${R_SCMD} "library(pbdMPI);get.lib('R_SLAP','"${R_ARCH}"','pbdSLAP')")
endif

FLOAT_INCL = $(shell ${R_SCMD} "float:::cppflags()")
FLOAT_LIBS = $(shell ${R_SCMD} "float:::ldflags()")

R_CPPFLAGS = $(shell ${R_HOME}/bin${R_ARCH_BIN}/R CMD config --cppflags)

NVCC = $(CUDA_DIR)/bin/nvcc
CUDA_CFLAGS = -I"${CUDA_DIR}"/include
ifeq "$(WIN)" "64"
CUDA_LDFLAGS = -L"${CUDA_DIR}"/lib/x64
else
CUDA_LDFLAGS = -L"${CUDA_DIR}"/lib/Win32
endif



# set arch flags
PKG_LIBS_CPU = "${FLOAT_LIBS}" $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) $(SHLIB_OPENMP_CXXFLAGS)

PKG_LIBS_GPU = $(CUDA_LDFLAGS) -lcudart -lcublas -lcusolver -lcurand -lnvidia-ml

PKG_CPPFLAGS_MPI = $(SPMD_CPPFLAGS)
PKG_CXXFLAGS_MPI = $(SPMD_CPPFLAGS)
PKG_LIBS_MPI = $(SLAP_LDFLAGS) $(SPMD_LDFLAGS)



# flags
PKG_CPPFLAGS = $(FML_CPPFLAGS)
PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)



# libs and objects
R_OBJS = fmlr-native.o
CPU_OBJS = cpumat.o cpuvec.o dimops-cpu.o helpers-cpu.o linalg-cpu.o stats-cpu.o
MPI_OBJS = dimops-mpi.o grid.o helpers-mpi.o linalg-mpi.o mpimat.o stats-mpi.o
PKG_LIBS = $(PKG_LIBS_CPU)

ifeq "$(USE_MPI)" "TRUE"
PKG_CPPFLAGS += $(PKG_CPPFLAGS_MPI)
PKG_CXXFLAGS += $(PKG_CXXFLAGS_MPI) 
PKG_LIBS += $(PKG_LIBS_MPI)
MPI_OBJS = dimops-mpi.o grid.o helpers-mpi.o linalg-mpi.o mpimat.o stats-mpi.o
else
MPI_OBJS = mpi-dummy-bindings.o
endif

ifeq "$(USE_GPU)" "TRUE"
PKG_LIBS += $(PKG_LIBS_GPU)
GPU_OBJS = card.o dimops-gpu.o gpumat.o gpuvec.o helpers-gpu.o linalg-gpu.o stats-gpu.o
else
PKG_LIBS = $(PKG_LIBS_MPI) $(PKG_LIBS_CPU)
GPU_OBJS = gpu-dummy-bindings.o
endif

OBJECTS = $(R_OBJS) $(CPU_OBJS) $(MPI_OBJS) $(GPU_OBJS)



# make
all: $(SHLIB)

ifeq "$(USE_GPU)" "TRUE"
%.o: %.cu
	$(NVCC) -DGPU -O2 -x cu -c -arch=sm_61 -Xcompiler "-fPIC $(FML_CPPFLAGS) $(FLOAT_INCL) $(R_CPPFLAGS) $(SPMD_CPPFLAGS)" $< -o $@
else
$(SHLIB): $(OBJECTS)
endif

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

Weird. Would you mind giving me the compiler output from the R CMD INSTALL?

Edit: Nevermind. I think I see the issue here. There's a subtlety with quotes that I don't think behaves this way in GNU make on linux. I'll push a fix this evening.

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

I get this error now when doing R CMD INSTALL after re-cloning the repo (also shows up when I use devtools to try and install):

Running "C:/PROGRA~1/R/R-40~1.0/bin/x64/Rcmd.exe" INSTALL \
  "C:\Users\MATTHE~1\AppData\Local\Temp\Rtmps3xweT/fmlr_0.2-1-1.tar.gz" \
  --install-tests 
* installing to library 'C:/Users/Matthew Pancia/R/win-library/4.0'
* installing *source* package 'fmlr' ...
** using staged installation
** libs
|
*** arch - i386
"C:/rtools40/mingw32/bin/"gcc  -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'        -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign -c fmlr-native.c -o fmlr-native.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c cpumat.cpp -o cpumat.o
cpumat.cpp:8:10: fatal error: fml/src/_internals/arraytools/src/arraytools.hpp: No such file or directory
 #include <fml/src/_internals/arraytools/src/arraytools.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [C:/PROGRA~1/R/R-40~1.0/etc/i386/Makeconf:229: cpumat.o] Error 1
ERROR: compilation failed for package 'fmlr'
* removing 'C:/Users/Matthew Pancia/R/win-library/4.0/fmlr'
Error in (function (command = NULL, args = character(), error_on_status = TRUE,  : 
  System command 'Rcmd.exe' failed, exit status: 1, stdout & stderr were printed

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

Did you clone with --recurse-submodules?

git clone --recurse-submodules https://github.com/fml-fam/fmlr.git

The install_github() variants won't work because of the submodules, unfortunately.

from fmlr.

mpancia avatar mpancia commented on June 16, 2024

Ugh, I'm a doofus, I should have realized that. Sorry. I get a different error now:

$ R CMD INSTALL .
* installing to library 'C:/Users/Matthew Pancia/R/win-library/4.0'
* installing *source* package 'fmlr' ...
** using staged installation
** libs

*** arch - i386
"C:/rtools40/mingw32/bin/"gcc  -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'        -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign -c fmlr-native.c -o fmlr-native.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c cpumat.cpp -o cpumat.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c cpuvec.cpp -o cpuvec.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c dimops-cpu.cpp -o dimops-cpu.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c helpers-cpu.cpp -o helpers-cpu.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c linalg-cpu.cpp -o linalg-cpu.o
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c stats-cpu.cpp -o stats-cpu.o
In file included from ../inst/include/fml/src/cpu/cpumat.hh:25,
                 from stats-cpu.cpp:5:
../inst/include/fml/src/cpu/cpuvec.hh: In function 'int linalg::{anonymous}::svd_internals(int, int, cpumat<REAL>&, cpuvec<T>&, cpumat<REAL>&, cpumat<REAL>&) [with REAL = double]':
../inst/include/fml/src/cpu/cpuvec.hh:497:14: warning: '*((void*)& work +4)' may be used uninitialized in this function [-Wmaybe-uninitialized]
     std::free(this->data);
     ~~~~~~~~~^~~~~~~~~~~~
In file included from ../inst/include/fml/src/cpu/stats.hh:11,
                 from stats-cpu.cpp:6:
../inst/include/fml/src/cpu/linalg.hh:507:20: note: '*((void*)& work +4)' was declared
here
       cpuvec<REAL> work(lwork);
                    ^~~~
In file included from ../inst/include/fml/src/cpu/cpumat.hh:25,
                 from stats-cpu.cpp:5:
../inst/include/fml/src/cpu/cpuvec.hh: In function 'int linalg::{anonymous}::svd_internals(int, int, cpumat<REAL>&, cpuvec<T>&, cpumat<REAL>&, cpumat<REAL>&) [with REAL = float]':
../inst/include/fml/src/cpu/cpuvec.hh:497:14: warning: '*((void*)& work +4)' may be used uninitialized in this function [-Wmaybe-uninitialized]
     std::free(this->data);
     ~~~~~~~~~^~~~~~~~~~~~
In file included from ../inst/include/fml/src/cpu/stats.hh:11,
                 from stats-cpu.cpp:6:
../inst/include/fml/src/cpu/linalg.hh:507:20: note: '*((void*)& work +4)' was declared
here
       cpuvec<REAL> work(lwork);
                    ^~~~
"C:/rtools40/mingw32/bin/"g++  -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I../inst/include -I'C:/Users/Matthew Pancia/R/win-library/4.0/float/include'     -fopenmp   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c mpi-dummy-bindings.cpp -o mpi-dummy-bindings.o
Error in tools::file_path_as_absolute(float_include_dir_rel) :
  file '' does not exist
Calls: <Anonymous> -> cppflags_string -> <Anonymous>
Execution halted
"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2"/bin/nvcc -DGPU -O2 -x cu -c
-arch=sm_61 -Xcompiler "-fPIC -I../inst/include  -IC:/PROGRA~1/R/R-40~1.0/include -IC:/PROGRA~1/R/R-40~1.0/include/i386 " card.cu -o card.o
nvcc fatal   : Cannot find compiler 'cl.exe' in PATH
make: *** [Makevars.win:88: card.o] Error 1
ERROR: compilation failed for package 'fmlr'
* removing 'C:/Users/Matthew Pancia/R/win-library/4.0/fmlr'

from fmlr.

wrathematics avatar wrathematics commented on June 16, 2024

No worries. I really appreciate your patience working with me so far.

We are finally at the CUDA problems! Sorry this took so much of your time so far. I really thought the makefile was in good enough shape that we would start here...

Well apparently (and I really should have seen this coming) Windows CUDA only supports Microsoft's VC++. I have no idea if installing that and setting the compiler to cl.exe in ~/.R/Makevars.win would work, although I doubt it. I'm trying to find more information at the moment.

from fmlr.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.