mistral.rs icon indicating copy to clipboard operation
mistral.rs copied to clipboard

#832 - Unable to build on Windows with VS and CUDA 12.6

Open misureaudio opened this issue 4 months ago • 5 comments

Minimum reproducible example

cargo build --release --features cuda

Error

Build error candle 0.7.2

error trace:

error: failed to run custom build command for candle-kernels v0.7.2 (https://github.com/EricLBuehler/candle.git?rev=60eb251#60eb251f) note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by: process didn't exit successfully: C:\Users\MATTIA\Desktop\rustsrc\mistral.rs.0.3.1.0832\target\release\build\candle-kernels-89221a871de49b16\build-script-build (exit code: 101) --- stdout cargo:rerun-if-changed=build.rs cargo:rerun-if-changed=src/compatibility.cuh cargo:rerun-if-changed=src/cuda_utils.cuh cargo:rerun-if-changed=src/binary_op_macros.cuh cargo:info=["/usr", "/usr/local/cuda", "/opt/cuda", "/usr/lib/cuda", "C:/Program Files/NVIDIA GPU Computing Toolkit", "C:/CUDA"] cargo:rerun-if-env-changed=CUDA_COMPUTE_CAP cargo:rustc-env=CUDA_COMPUTE_CAP=89 cargo:info=Builder { cuda_root: Some("C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6"), kernel_paths: ["src\affine.cu", "src\binary.cu", "src\cast.cu", "src\conv.cu", "src\fill.cu", "src\fused_rms_norm.cu", "src\fused_rope.cu", "src\indexing.cu", "src\kvconcat.cu", "src\quantized.cu", "src\reduce.cu", "src\sort.cu", "src\ternary.cu", "src\unary.cu"], watch: [], include_paths: ["src\binary_op_macros.cuh", "src\compatibility.cuh", "src\cuda_utils.cuh"], compute_cap: Some(89), out_dir: "C:\Users\MATTIA\Desktop\rustsrc\mistral.rs.0.3.1.0832\target\release\build\candle-kernels-1e018c63da86e142\out", extra_args: [] } cargo:rustc-env=CUDA_INCLUDE_DIR=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\include cargo:rerun-if-changed=src\binary_op_macros.cuh cargo:rerun-if-changed=src\compatibility.cuh cargo:rerun-if-changed=src\cuda_utils.cuh cargo:rerun-if-env-changed=NVCC_CCBIN cargo:rerun-if-changed=src\affine.cu cargo:rerun-if-changed=src\binary.cu cargo:rerun-if-changed=src\indexing.cu cargo:rerun-if-changed=src\kvconcat.cu cargo:rerun-if-changed=src\conv.cu cargo:rerun-if-changed=src\reduce.cu cargo:rerun-if-changed=src\fused_rms_norm.cu cargo:rerun-if-changed=src\quantized.cu cargo:rerun-if-changed=src\cast.cu cargo:rerun-if-changed=src\fused_rope.cu cargo:rerun-if-changed=src\sort.cu cargo:rerun-if-changed=src\fill.cu cargo:rerun-if-changed=src\unary.cu cargo:rerun-if-changed=src\ternary.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(371): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_argmin(size_t, size_t, size_t, const size_t *, const T *, uint32_t *) [with T=uint32_t]" at line 616

Remark: The warnings can be suppressed with "-diag-suppress "

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(331): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_min(size_t, size_t, size_t, const size_t *, const T *, T *) [with T=uint32_t]" at line 616

1 error detected in the compilation of "src/indexing.cu". C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(371): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_argmin(size_t, size_t, size_t, const size_t *, const T *, uint32_t *) [with T=int16_t]" at line 617

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(331): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_min(size_t, size_t, size_t, const size_t *, const T *, T *) [with T=int16_t]" at line 617

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(371): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_argmin(size_t, size_t, size_t, const size_t *, const T *, uint32_t *) [with T=int32_t]" at line 618

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(331): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_min(size_t, size_t, size_t, const size_t *, const T *, T *) [with T=int32_t]" at line 618

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(371): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_argmin(size_t, size_t, size_t, const size_t *, const T *, uint32_t *) [with T=int64_t]" at line 619

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(331): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_min(size_t, size_t, size_t, const size_t *, const T *, T *) [with T=int64_t]" at line 619

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(371): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_argmin(size_t, size_t, size_t, const size_t *, const T *, uint32_t *) [with T=uint8_t]" at line 620

C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\reduce.cu(331): warning #173-D: floating-point value does not fit in required integral type shr[tid] = ((float)(1e+300 * 1e+300)); ^ detected during instantiation of "void fast_min(size_t, size_t, size_t, const size_t *, const T *, T *) [with T=uint8_t]" at line 620

1 error detected in the compilation of "src/reduce.cu". indexing.cu reduce.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/cast.cu". C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

cast.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/unary.cu". C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/binary.cu". 1 error detected in the compilation of "src/conv.cu". unary.cu binary.cu conv.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/kvconcat.cu". kvconcat.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/sort.cu". sort.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/ternary.cu". ternary.cu C:\Users\MATTIA.cargo\git\checkouts\candle-c6a149c3b35a488f\60eb251\candle-kernels\src\cuda_utils.cuh(238): error: identifier "isnanf" is undefined __declspec(device) __forceinline bool isnang(__nv_fp8_e4m3 a) { return isnanf(__half2float(__nv_cvt_fp8_to_halfraw(a.__x, __NV_E4M3))); } ^

1 error detected in the compilation of "src/affine.cu". affine.cu

--- stderr thread 'main' panicked at C:\Users\MATTIA.cargo\registry\src\index.crates.io-6f17d22bba15001f\bindgen_cuda-0.1.5\src\lib.rs:391:13: nvcc error while compiling "src\affine.cu":

CLI "nvcc" "--gpu-architecture=sm_89" "--ptx" "--default-stream" "per-thread" "--output-directory" "C:\Users\MATTIA\Desktop\rustsrc\mistral.rs.0.3.1.0832\target\release\build\candle-kernels-1e018c63da86e142\out" "-Isrc" "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\include" "src\affine.cu"

stdout

stderr

stack backtrace: 0: std::panicking::begin_panic_handler at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\std\src\panicking.rs:665 1: core::panicking::panic_fmt at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\core\src\panicking.rs:74 2: bindgen_cuda::Builder::build_ptx 3: std::rt::lang_start 4: std::rt::lang_start 5: std::rt::lang_start 6: std::rt::lang_start 7: std::rt::lang_start_internal::closure$2 at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\std\src\rt.rs:141 8: std::panicking::try::do_call at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\std\src\panicking.rs:557 9: std::panicking::try at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\std\src\panicking.rs:521 10: std::panic::catch_unwind at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\std\src\panic.rs:350 11: std::rt::lang_start_internal at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library\std\src\rt.rs:141 12: std::rt::lang_start 13: main 14: invoke_main at D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78 15: __scrt_common_main_seh at D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288 16: BaseThreadInitThunk 17: RtlUserThreadStart note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace. warning: build failed, waiting for other jobs to finish...

Other information

Please specify: Windows 11, VS 2022 17.11.4 - rustc 1.81.0

  • GPU or accelerator information nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Wed_Aug_14_10:26:51_Pacific_Daylight_Time_2024 Cuda compilation tools, release 12.6, V12.6.68 Build cuda_12.6.r12.6/compiler.34714021_0

Latest commit or version

0.3.1.0832

no problem with preceding versions

misureaudio avatar Oct 13 '24 13:10 misureaudio