Missing lib files culibos, dl, rt for cuBLAS

I am compiling code on Windows that uses cuBLAS and I have the following line in the Makefile:

LDFLAGS += -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -LC:/PROGRA~1/NVIDIA~2/CUDA/v11.5/lib/x64

It seems that culiboslib, dl.lib and rt.lib do not exist on Windows in my CUDA installation: C:/PROGRA~1/NVIDIA~2/CUDA/v11.5/lib/x64

They are only available on Linux?

Yes, only on linux. The principal use that I know of for those in a CUBLAS context is for static linking to CUBLAS, and static linking to CUBLAS is only supported on linux. For what you have shown here (-lcublas) they should not be needed anyway.

Thanks. I am trying to compile GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++ with cuBLAS support (static linking) in order to accelerate some Large Language Models by both utilizing RAM and Video Memory.

It is a pity that it is not supported on Windows. There is some demand after all as it is my case. Is there any remote chance that it will be supported in the future? Now I can not use my 4GB video memory, only my main RAM.

I use GitHub - skeeto/w64devkit: Portable C and C++ Development Kit for x64 (and x86) Windows to compile llama.cpp. w64devkit allows Linux software to be compiled on Windows. It seems to work well.

It shouldn’t be necessary to statically link to cublas.

The way I see it: I am trying to compile cuBLAS on Windows to be linked to the .exe (main executable) of llama.cpp project. But I am missing the 3 lib files:

  • culibos.lib
  • dl.lib
  • rt.lib

Just remove them:

LDFLAGS += -lcublas -lcudart -lcublasLt -lpthread -LC:/PROGRA~1/NVIDIA~2/CUDA/v11.5/lib/x64

or study one of the sample projects on windows that uses CUBLAS.

I need to use cuBLAS.

If I remove them I get a lot of link errors like 200 of them. These are some of them:

C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x102): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x102): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x100): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x100): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x102): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x100): more undefined references to `fprintf' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x10b): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xef): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xe3): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x12e): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x147): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x122): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xf0): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xe3): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x10f): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xe3): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xe3): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x15): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xfd): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x14): undefined reference to `_Init_thread_epoch'
ggml-cuda.o:(.text$mn+0x14): relocation truncated to fit: IMAGE_REL_AMD64_SECREL against undefined symbol `_Init_thread_epoch'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x3b): undefined reference to `_Init_thread_header'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x6c): undefined reference to `_Init_thread_footer'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xeb): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xc): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x6d): undefined reference to `snprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xb6): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x34): undefined reference to `?ggml_cuda_set_device@@YA?AW4cudaError@@H@Z'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x127): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x145): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x189): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xee): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x13d): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x18c): more undefined references to `fprintf' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x10e): undefined reference to `??3@YAXPEAX_K@Z'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x175): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x193): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x1d7): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x226): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x244): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x288): more undefined references to `fprintf' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xe): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x48): undefined reference to `snprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x58): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xa7): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xc5): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x109): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x5c): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x7a): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xbe): more undefined references to `fprintf' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xc): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x50): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xae): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xc6): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x113): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x131): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x175): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x9b): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xb9): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xfd): more undefined references to `fprintf' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xa): undefined reference to `__security_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x9b): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xb9): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0xde): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x14a): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x2d9): undefined reference to `__security_check_cookie'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x325): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x343): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x387): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x3d6): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x425): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.text$mn+0x443): more undefined references to `fprintf' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$ggml_init_cublas]+0x8): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$ggml_cuda_set_main_device]+0xc): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$ggml_cuda_get_device_description]+0x10): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?acc_f32@@YAXPEBM0PEAMHHHHHHH@Z]+0x10): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?gelu_f32@@YAXPEBMPEAMH@Z]+0x10): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?silu_f32@@YAXPEBMPEAMH@Z]+0x10): more undefined references to `__GSHandlerCheck' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?ggml_cuda_mul_mat_id@@YAXPEBUggml_tensor@@0PEAU1@@Z]+0x1c): undefined reference to `__GSHandlerCheck_EH4'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$stateUnwindMap$?ggml_cuda_mul_mat_id@@YAXPEBUggml_tensor@@0PEAU1@@Z]+0x2): undefined reference to `??1?$vector@DV?$allocator@D@std@@@std@@QEAA@XZ'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$ggml_backend_cuda_reg_devices]+0xc): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?__device_stub__Z7acc_f32PKfS0_Pfiiiiiii@@YAXPEBM0PEAMHHHHHHH@Z]+0xc): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?__device_stub__Z8gelu_f32PKfPfi@@YAXPEBMPEAMH@Z]+0x10): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?__device_stub__Z8silu_f32PKfPfi@@YAXPEBMPEAMH@Z]+0x10): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?__device_stub__Z14gelu_quick_f32PKfPfi@@YAXPEBMPEAMH@Z]+0x10): undefined reference to `__GSHandlerCheck'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata[$unwind$?__device_stub__Z8tanh_f32PKfPfi@@YAXPEBMPEAMH@Z]+0x10): more undefined references to `__GSHandlerCheck' follow
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata[??_7exception@std@@6B@]+0x10): undefined reference to `?what@exception@std@@UEBAPEBDXZ'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata[??_7bad_alloc@std@@6B@]+0x0): undefined reference to `??_R4bad_alloc@std@@6B@'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata[??_7bad_alloc@std@@6B@]+0x10): undefined reference to `?what@exception@std@@UEBAPEBDXZ'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata[??_7bad_array_new_length@std@@6B@]+0x0): undefined reference to `??_R4bad_array_new_length@std@@6B@'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata[??_7bad_array_new_length@std@@6B@]+0x10): undefined reference to `?what@exception@std@@UEBAPEBDXZ'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata$x+0x4): undefined reference to `??1bad_array_new_length@std@@UEAA@XZ'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.xdata$x+0xc): undefined reference to `_CTA3?AVbad_array_new_length@std@@'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.data$r+0x0): undefined reference to `??_7type_info@@6B@'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata$r+0xc): undefined reference to `??_R0?AVexception@std@@@8'
C:/Temp/w64devkit/bin/ld.exe: ggml-cuda.o:(.rdata$r+0x10): undefined reference to `??_R3exception@std@@8'
C:/Temp/w64devkit/bin/ld.exe: C:/Temp/w64devkit/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libpthread.a(libwinpthread_la-thread.o):thread.c:(.text+0x2dc): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: C:/Temp/w64devkit/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libpthread.a(libwinpthread_la-thread.o):thread.c:(.text+0x4dc): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: C:/Temp/w64devkit/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libpthread.a(libwinpthread_la-thread.o):thread.c:(.text+0x1159): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: C:/Temp/w64devkit/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libpthread.a(libwinpthread_la-rwlock.o):rwlock.c:(.text+0x1a6): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: C:/Temp/w64devkit/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libpthread.a(libwinpthread_la-cond.o):cond.c:(.text+0x105): undefined reference to `fprintf'
C:/Temp/w64devkit/bin/ld.exe: C:/Temp/w64devkit/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libpthread.a(libwinpthread_la-cond.o):cond.c:(.text+0x134): more undefined references to `fprintf' follow
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:570: main] Error 1

mingw is not a host compiler you can use on windows for CUDA.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.