Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linked command failed with exit code 1 #2

Open
mariano54 opened this issue Aug 25, 2024 · 2 comments
Open

linked command failed with exit code 1 #2

mariano54 opened this issue Aug 25, 2024 · 2 comments

Comments

@mariano54
Copy link

I'm trying to compile this for an AMD 6900XT. On an AMD CPU, arch linux. Pytorch works properly with ROCM.

Here are some of the link issues I'm getting:

/usr/bin/ld: CMakeFiles/ctranslate2.dir/src/ops/quantize_gpu.cu.o: in function `__float22bfloat162_rn(HIP_vector_type<float, 2u>)':
quantize_gpu.cu:(.text+0xa0): multiple definition of `__float22bfloat162_rn(HIP_vector_type<float, 2u>)'; CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:primitives.cu:(.text+0xa0): first defined here
/usr/bin/ld: CMakeFiles/ctranslate2.dir/src/ops/quantize_gpu.cu.o: in function `__high2float(__hip_bfloat162)':
quantize_gpu.cu:(.text+0x120): multiple definition of `__high2float(__hip_bfloat162)'; CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:primitives.cu:(.text+0x120): first defined here
/usr/bin/ld: CMakeFiles/ctranslate2.dir/src/ops/quantize_gpu.cu.o: in function `__low2float(__hip_bfloat162)':
quantize_gpu.cu:(.text+0x130): multiple definition of `__low2float(__hip_bfloat162)'; CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:primitives.cu:(.text+0x130): first defined here
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Would appreciate any help you can give here.

@mariano54
Copy link
Author

I had to perform this patch to get it to compile:

https://github.com/vllm-project/vllm/pull/2790/files

@creeloper27
Copy link

creeloper27 commented Nov 12, 2024

I had to perform this patch to get it to compile:

https://github.com/vllm-project/vllm/pull/2790/files

Update: I uninstalled everything AMD, HIP and ROCm related and reinstalled everything using amdgpu-install (sudo amdgpu-install --usercases=dkms,graphics,hip,hiplibsdk,rocm,rocmdev) and a missing package I needed called miopen-hip-dev (sudo apt install miopen-hip-dev on Ubuntu 24.04), now the project succesfully compiles without any error! I didn't even need to edit any file, the stock 6.2 ROCm installation worked perfectly fine.

I am using ROCm 6.2 an I am having toruble getting this fork to work.

@mariano54 Are you able to explain what you did exactly by any chance?

I am also getting similar multiple definitions errors

[...]

[ 90%] Linking CXX shared library libctranslate2.so
ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x40)

ld.lld: error: duplicate symbol: __double2bfloat16(double)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__double2bfloat16(double))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x60)

ld.lld: error: duplicate symbol: __float22bfloat162_rn(HIP_vector_type<float, 2u>)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float22bfloat162_rn(HIP_vector_type<float, 2u>))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0xA0)

ld.lld: error: duplicate symbol: __high2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__high2float(__hip_bfloat162))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x120)

ld.lld: error: duplicate symbol: __low2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__low2float(__hip_bfloat162))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x130)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0x40)

ld.lld: error: duplicate symbol: __double2bfloat16(double)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__double2bfloat16(double))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0x60)

ld.lld: error: duplicate symbol: __float22bfloat162_rn(HIP_vector_type<float, 2u>)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float22bfloat162_rn(HIP_vector_type<float, 2u>))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0xA0)

ld.lld: error: duplicate symbol: __high2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__high2float(__hip_bfloat162))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0x120)

ld.lld: error: duplicate symbol: __low2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__low2float(__hip_bfloat162))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0x130)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x40)

ld.lld: error: duplicate symbol: __double2bfloat16(double)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__double2bfloat16(double))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x60)

ld.lld: error: duplicate symbol: __float22bfloat162_rn(HIP_vector_type<float, 2u>)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float22bfloat162_rn(HIP_vector_type<float, 2u>))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0xA0)

ld.lld: error: duplicate symbol: __high2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__high2float(__hip_bfloat162))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x120)

ld.lld: error: duplicate symbol: __low2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__low2float(__hip_bfloat162))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x130)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x40)

ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [CMakeFiles/ctranslate2.dir/build.make:2050: libctranslate2.so.4.1.0] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/ctranslate2.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

I wanted to try and apply the patch you suggested to /opt/rocm/include/hip/amd_detail/amd_hip_bf16.h but the definitions are slightly different on the file for me so I tried to adapt them.

/opt/rocm/include/hip/amd_detail/amd_hip_bf16.h (original file)

 102
 103 #include "amd_hip_vector_types.h"  // float2 etc
 104 #include "device_library_decls.h"  // ocml conversion functions
 105 #include "math_fwd.h"              // ocml device functions
 106
 107 #define __BF16_DEVICE__ __device__
 108 #if defined(__HIPCC_RTC__)
 109 #define __BF16_HOST_DEVICE__ __BF16_DEVICE__
 110 #else
 111 #include <algorithm>
 112 #include <climits>
 113 #include <cmath>
 114 #define __BF16_HOST_DEVICE__ __host__ __BF16_DEVICE__
 115 #endif
 116 #define __BF16_DEVICE_STATIC__ __BF16_DEVICE__ static inline
 117 #define __BF16_HOST_DEVICE_STATIC__ __BF16_HOST_DEVICE__ static inline
 118

/opt/rocm/include/hip/amd_detail/amd_hip_bf16.h (tweaked file)

 102
 103 #include "amd_hip_vector_types.h"  // float2 etc
 104 #include "device_library_decls.h"  // ocml conversion functions
 105 #include "math_fwd.h"              // ocml device functions
 106
 107 #define __BF16_DEVICE__ __device__
 108 #if defined(__HIPCC_RTC__)
 109 #define __BF16_HOST_DEVICE__ __BF16_DEVICE__ static
 110 #else
 111 #include <algorithm>
 112 #include <climits>
 113 #include <cmath>
 114 #define __BF16_HOST_DEVICE__ __host__ __BF16_DEVICE__ static inline
 115 #endif
 116 #define __BF16_DEVICE_STATIC__ __BF16_DEVICE__ static inline
 117 #define __BF16_HOST_DEVICE_STATIC__ __BF16_HOST_DEVICE__ static inline
 118

And got (same output as running with original files):

[...]

[ 90%] Linking CXX shared library libctranslate2.so
ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x40)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x40)

ld.lld: error: duplicate symbol: __double2bfloat16(double)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__double2bfloat16(double))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x60)

ld.lld: error: duplicate symbol: __float22bfloat162_rn(HIP_vector_type<float, 2u>)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float22bfloat162_rn(HIP_vector_type<float, 2u>))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0xA0)

ld.lld: error: duplicate symbol: __high2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__high2float(__hip_bfloat162))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x120)

ld.lld: error: duplicate symbol: __low2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__low2float(__hip_bfloat162))
>>> defined at concat_split_slide_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/concat_split_slide_gpu.cu.o:(.text+0x130)

ld.lld: error: duplicate symbol: __double2bfloat16(double)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__double2bfloat16(double))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x60)

ld.lld: error: duplicate symbol: __float22bfloat162_rn(HIP_vector_type<float, 2u>)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float22bfloat162_rn(HIP_vector_type<float, 2u>))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0xA0)

ld.lld: error: duplicate symbol: __high2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__high2float(__hip_bfloat162))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x120)

ld.lld: error: duplicate symbol: __low2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__low2float(__hip_bfloat162))
>>> defined at alibi_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/alibi_add_gpu.cu.o:(.text+0x130)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __bfloat1622float2(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__bfloat1622float2(__hip_bfloat162))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x40)

ld.lld: error: duplicate symbol: __double2bfloat16(double)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__double2bfloat16(double))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x60)

ld.lld: error: duplicate symbol: __float22bfloat162_rn(HIP_vector_type<float, 2u>)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float22bfloat162_rn(HIP_vector_type<float, 2u>))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0xA0)

ld.lld: error: duplicate symbol: __high2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__high2float(__hip_bfloat162))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x120)

ld.lld: error: duplicate symbol: __low2float(__hip_bfloat162)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__low2float(__hip_bfloat162))
>>> defined at dequantize_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/dequantize_gpu.cu.o:(.text+0x130)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at bias_add_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/bias_add_gpu.cu.o:(.text+0x0)

ld.lld: error: duplicate symbol: __float2bfloat16(float)
>>> defined at primitives.cu
>>>            CMakeFiles/ctranslate2.dir/src/cuda/primitives.cu.o:(__float2bfloat16(float))
>>> defined at gather_gpu.cu
>>>            CMakeFiles/ctranslate2.dir/src/ops/gather_gpu.cu.o:(.text+0x0)

ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [CMakeFiles/ctranslate2.dir/build.make:2050: libctranslate2.so.4.1.0] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/ctranslate2.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

As this did not resolve the error, I restored the original amd_hip_bf16.h file and instead tried tweaking amd_hip_bfloat16.h.

/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h (original file)

 31
 32 #include "host_defines.h"
 33 #if defined(__HIPCC_RTC__)
 34     #define __HOST_DEVICE__ __device__
 35 #else
 36     #define __HOST_DEVICE__ __host__ __device__
 37 #endif
 38

/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h (tweaked file)

 31
 32 #include "host_defines.h"
 33 #if defined(__HIPCC_RTC__)
 34     #define __HOST_DEVICE__ __device__ static
 35 #else
 36     #define __HOST_DEVICE__ __host__ __device__ static inline
 37 #endif
 38

And got:

[...]

In file included from /opt/rocm/include/hip/hip_bfloat16.h:37:
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:66:21: error: constructor cannot be declared 'static'
   66 |     __HOST_DEVICE__ hip_bfloat16() = default;
      |     ~~~~~~~~~~~~~~~ ^~~~~~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:69:30: error: constructor cannot be declared 'static'
   69 |     explicit __HOST_DEVICE__ hip_bfloat16(float f)
      |              ~~~~~~~~~~~~~~~ ^~~~~~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:74:30: error: constructor cannot be declared 'static'
   74 |     explicit __HOST_DEVICE__ hip_bfloat16(float f, truncate_t)
      |              ~~~~~~~~~~~~~~~ ^~~~~~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:80:38: error: static member function cannot have 'const' qualifier
   80 |     __HOST_DEVICE__ operator float() const
      |                                      ^
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:80:21: error: conversion function must be a non-static member function
   80 |     __HOST_DEVICE__ operator float() const
      |     ~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:90:35: error: overloaded 'operator=' cannot be a static member function
   90 |     __HOST_DEVICE__ hip_bfloat16 &operator=(const float& f)
      |                                   ^
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:92:8: error: invalid use of member 'data' in static member function
   92 |        data = float_to_bfloat16(f);
      |        ^~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:93:16: error: invalid use of 'this' outside of a non-static member function
   93 |        return *this;
      |                ^
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:185:16: error: cannot convert 'const hip_bfloat16' to 'float' without a conversion operator
  185 |   return os << float(bf16);
      |                ^~~~~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:200:25: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  200 |     return hip_bfloat16(float(a) + float(b));
      |                         ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:200:36: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  200 |     return hip_bfloat16(float(a) + float(b));
      |                                    ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:204:25: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  204 |     return hip_bfloat16(float(a) - float(b));
      |                         ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:204:36: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  204 |     return hip_bfloat16(float(a) - float(b));
      |                                    ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:208:25: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  208 |     return hip_bfloat16(float(a) * float(b));
      |                         ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:208:36: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  208 |     return hip_bfloat16(float(a) * float(b));
      |                                    ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:212:25: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  212 |     return hip_bfloat16(float(a) / float(b));
      |                         ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:212:36: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  212 |     return hip_bfloat16(float(a) / float(b));
      |                                    ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:216:12: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  216 |     return float(a) < float(b);
      |            ^~~~~~~~
/opt/rocm/include/hip/amd_detail/amd_hip_bfloat16.h:216:23: error: cannot convert 'hip_bfloat16' to 'float' without a conversion operator
  216 |     return float(a) < float(b);
      |                       ^~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]

[...]

gmake[1]: *** [CMakeFiles/Makefile2:192: CMakeFiles/ctranslate2.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants