homebrew-core icon indicating copy to clipboard operation
homebrew-core copied to clipboard

sleef 3.6

Open Porkepix opened this issue 1 year ago • 4 comments

Created by brew bump


Created with brew bump-formula-pr.

release notes
This new release of SLEEF contains numerous important updates such as
  • Generation of inline header file for CUDA (PR #337)
  • Add support for System/390 z15 support (PR #343)
  • Add support for POWER 9 (PR #360)
  • Optimise error functions (PR #370)
  • Add quad-precision functions (PR #375, #377, #380, #381, #382, #383, #385, #386, #387) and documentation
  • Add preliminary support for iOS and Android (PR #388, #389)
  • Add OpenMP pragmas to the function declarations in sleef.h to enable auto-vectorization by GCC (PR #404, #406)
  • Improve CMake package config (PR #412)
  • Remove old CI scripts (PR #502) and add new public CI test infrastructure using GitHub Actions (PR #476)
  • Add support for RISC-V in libm (PR #477)
  • Support parallel builds with GNU make (PR #491)
  • Add SLEEF_ prefix to user-facing CMake options. (PR #509)
  • Various bug fixes (PR #492, #499, #508)
  • Update documentation and move doc/website to repo (PR #504, #513)   This release comes after a long period of inactivity and might suffer from limited test coverage. We made sure to document supported environments on the README and issue #481. Known issues are documented in GitHub issues.

Porkepix avatar Feb 15 '24 11:02 Porkepix

  [ 97%] Linking C executable ../../bin/mveclibtest-sse2
  cd /tmp/sleef-20240215-3391-4wod7g/sleef-3.6/build/src/libm-tester && /home/linuxbrew/.linuxbrew/Cellar/cmake/3.28.3/bin/cmake -E cmake_link_script CMakeFiles/mveclibtest-sse2.dir/link.txt --verbose=1
  /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/gcc-11  -Wall -Wno-unused-function -Wno-attributes -Wno-unused-result -Wno-psabi -ffp-contract=off -fno-math-errno -fno-trapping-math -fno-strict-aliasing -O3 -DNDEBUG "CMakeFiles/mveclibtest-sse2.dir/mveclibtest.c.o" "CMakeFiles/mveclibtest-sse2.dir/__/common/main_checkfeature.c.o" -o ../../bin/mveclibtest-sse2   -L/tmp/sleef-20240215-3391-4wod7g/sleef-3.6/build/lib  -L/tmp/sleef-20240215-3391-4wod7g/sleef-3.6/build/src/common  -Wl,-rpath,/tmp/sleef-20240215-3391-4wod7g/sleef-3.6/build/lib:/tmp/sleef-20240215-3391-4wod7g/sleef-3.6/build/src/common ../../lib/libsleef.a ../../lib/libsleefgnuabi.a 
  /usr/bin/ld: CMakeFiles/mveclibtest-sse2.dir/mveclibtest.c.o: in function `do_libm':
  mveclibtest.c:(.text+0x2d): undefined reference to `sin'
  /usr/bin/ld: CMakeFiles/mveclibtest-sse2.dir/mveclibtest.c.o: in function `do_test_once':
  mveclibtest.c:(.text+0xcc): undefined reference to `sin'
  /usr/bin/ld: CMakeFiles/mveclibtest-sse2.dir/mveclibtest.c.o: in function `main2':
  mveclibtest.c:(.text+0x1fb): undefined reference to `sin'
  collect2: error: ld returned 1 exit status

timsutton avatar Feb 15 '24 14:02 timsutton

only linux build failed

chenrui333 avatar Feb 17 '24 08:02 chenrui333

  • relates to https://github.com/shibatch/sleef/pull/509

chenrui333 avatar Feb 17 '24 19:02 chenrui333

    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:451:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_logf8_u10);
                   ^~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:158:52: note: in instantiation of member function 'at::vec::Vectorized16<c10::BFloat16>::log' requested here
                    return (x_vec / (kOneVec - x_vec)).log();
                                                       ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:466:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_sinhf8_u10);
                   ^~~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:371:60: note: in instantiation of member function 'at::vec::Vectorized16<c10::BFloat16>::sinh' requested here
            [=](Vectorized<scalar_t> self_vec){return self_vec.sinh();});
                                                               ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:466:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_sinhf8_u10);
                   ^~~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:371:60: note: in instantiation of member function 'at::vec::Vectorized16<c10::Half>::sinh' requested here
            [=](Vectorized<scalar_t> self_vec){return self_vec.sinh();});
                                                               ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:472:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_coshf8_u10);
                   ^~~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:380:60: note: in instantiation of member function 'at::vec::Vectorized16<c10::BFloat16>::cosh' requested here
            [=](Vectorized<scalar_t> self_vec){return self_vec.cosh();});
                                                               ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:472:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_coshf8_u10);
                   ^~~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:380:60: note: in instantiation of member function 'at::vec::Vectorized16<c10::Half>::cosh' requested here
            [=](Vectorized<scalar_t> self_vec){return self_vec.cosh();});
                                                               ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:358:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_exp2f8_u10);
                   ^~~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:430:47: note: in instantiation of member function 'at::vec::Vectorized16<c10::BFloat16>::exp2' requested here
            [](Vectorized<scalar_t> a) { return a.exp2(); });
                                                  ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:358:16: error: cannot initialize a parameter of type 'const __m256 (*)(__m256)' with an lvalue of type '__m256 (__m256)': different return type ('const __m256' (vector of 8 'float' values) vs '__m256' (vector of 8 'float' values))
        return map(Sleef_exp2f8_u10);
                   ^~~~~~~~~~~~~~~~
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/native/cpu/UnaryOpsKernel.cpp:430:47: note: in instantiation of member function 'at::vec::Vectorized16<c10::Half>::exp2' requested here
            [](Vectorized<scalar_t> a) { return a.exp2(); });
                                                  ^
    /tmp/pytorch-20240217-11378-6wms3d/pytorch-v2.1.2/aten/src/ATen/cpu/vec/vec256/vec256_bfloat16.h:269:42: note: passing argument to parameter 'vop' here
      Vectorized<T> map(const __m256 (*const vop)(__m256)) const {
                                             ^
    7 errors generated.

chenrui333 avatar Feb 18 '24 14:02 chenrui333

For pytorch, upstream recently added a commit (https://github.com/pytorch/pytorch/commit/fa9cbdce993601276765ad7701871f7e04a400c6) but then reverted it (https://github.com/pytorch/pytorch/commit/a73a98c9ae718ec67e868dc5c61e790796e32515).

At this point, we can:

  • Hold off on PR until at least pytorch HEAD is compatible.
  • Carry a backport of above commit if it fixes issue. It looks low impact since only changing const and we don't care about submodule

cho-m avatar Feb 29 '24 15:02 cho-m

pytorch 2.2.1 is released but not yet bumped on Homebrew, but from your message I'm guessing even with it that would still be broken, considering I understand even HEAD is broken?

Porkepix avatar Feb 29 '24 16:02 Porkepix

:robot: An automated task has requested bottles to be published to this PR.

github-actions[bot] avatar Mar 21 '24 03:03 github-actions[bot]