Paddle icon indicating copy to clipboard operation
Paddle copied to clipboard

Unable to compile paddle 3.0.0.beta0, Assertion `idx < size()' failed.

Open xuesu opened this issue 1 year ago • 7 comments

问题描述 Issue Description

🔎 Search before asking

  • [X] I have searched the PaddleOCR Docs and found no similar bug report.
  • [X] I have searched the PaddleOCR Issues and found no similar bug report.
  • [X] I have searched the PaddleOCR Discussions and found no similar bug report.

🐛 Bug (问题描述)

I got the following error:

eager_generator: /home/iris/CDeepFuzz/Paddle/paddle/utils/small_vector.h:343: T& paddle::small_vector_template_common<T, <template-parameter-1-2> >::at(paddle::small_vector_template_common<T, <template-parameter-1-2> >::size_type) [with T = phi::TensorArgDef; <template-parameter-1-2> = void; paddle::small_vector_template_common<T, <template-parameter-1-2> >::reference = phi::TensorArgDef&; paddle::small_vector_template_common<T, <template-parameter-1-2> >::size_type = long unsigned int]: Assertion `idx < size()' failed.
Subprocess aborted
gmake[2]: *** [paddle/fluid/eager/auto_code_generator/CMakeFiles/legacy_eager_codegen.dir/build.make:70: paddle/fluid/eager/auto_code_generator/CMakeFiles/legacy_eager_codegen] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:66694: paddle/fluid/eager/auto_code_generator/CMakeFiles/legacy_eager_codegen.dir/all] Error 2

I added some print logs at :

  reference at(size_type idx) {
    std::string prompt = "LALALA: ";
    prompt += std::to_string(idx) + "," + std::to_string(size()); 
    std::cout << prompt << std::endl;
    assert(idx < size());
    return begin()[idx];
  }

I got:

LALALA: 1, 1

so the idx(1) is equal to size()(1).

I added traceback at:

@@ -333,6 +341,12 @@ class small_vector_template_common
   }
 
   reference at(size_type idx) {
+    if(idx == size()){
+      void *buffer[100];
+      int nptrs = backtrace(buffer, 100);  // Capture up to 100 frames
+      std::cerr << "Stack trace:\n";
+      backtrace_symbols_fd(buffer, nptrs, STDERR_FILENO);  // Print the stack trace
+    }
     assert(idx < size());
     return begin()

I got:

Stack trace:
~/Paddle/build/paddle/fluid/eager/auto_code_generator/eager_generator(_ZN6paddle28small_vector_template_commonIN3phi12TensorArgDefEvE2atEm+0x5d)[0x5aaefee7d309]
~/Paddle/build/paddle/fluid/eager/auto_code_generator/eager_generator(_ZN3phi6Kernel7InputAtEm+0x36)[0x5aaefee75700]
~/Paddle/build/paddle/phi/libphi_kernel_gpu.so(+0x4249c8c)[0x74579bc49c8c]
~/Paddle/build/paddle/fluid/eager/auto_code_generator/eager_generator(_ZN3phi15KernelRegistrar15ConstructKernelENS_7RegTypeEPKcS3_N6common10DataLayoutENS_8DataTypeEPFvRKNS_9KernelKeyEPNS_13KernelArgsDefEEPFvS9_PNS_6KernelEESt8functionIFvPNS_13KernelContextEEEPv+0x1ca)[0x5aaefee3da7a]
~/Paddle/build/paddle/fluid/eager/auto_code_generator/eager_generator(_ZN3phi15KernelRegistrarC1ENS_7RegTypeEPKcS3_N6common10DataLayoutENS_8DataTypeEPFvRKNS_9KernelKeyEPNS_13KernelArgsDefEEPFvS9_PNS_6KernelEESt8functionIFvPNS_13KernelContextEEEPv+0x9f)[0x5aaefee75839]
~/Paddle/build/paddle/phi/libphi_kernel_gpu.so(+0x424ab15)[0x74579bc4ab15]
~/Paddle/build/paddle/phi/libphi_kernel_gpu.so(+0x424addd)[0x74579bc4addd]
/lib64/ld-linux-x86-64.so.2(+0x647e)[0x7457cee2947e]
/lib64/ld-linux-x86-64.so.2(+0x6568)[0x7457cee29568]
/lib64/ld-linux-x86-64.so.2(+0x202ca)[0x7457cee432ca]

I wonder if this is because all source files under the folder paddle/fluid/eager/api/generated/fluid_generated/forwards/(e.g.: dygraph_forward_functions3.cc), are empty, but this function(https://github.com/jiaoxuewu/PaddleBox/blob/7552ba29f6b729f3192b4747283770b254433c8b/paddle/fluid/eager/auto_code_generator/generate_file_structures.py#L98) suggests that those files should be empty: GenerateFileStructureForIntermediateDygraph....

Sorry for writing in English...

🌰 Minimal Reproducible Example (最小可复现问题的Demo)

cmake ..   -DWITH_GPU=ON   -DWITH_TESTING=ON   -DWITH_DISTRIBUTE=ON   -DCMAKE_BUILD_TYPE=Debug   -DWITH_MKL=ON   -DWITH_PYTHON=ON -DCMAKE_C_COMPILER=clang  -DCMAKE_CXX_COMPILER=clang++
cmake --build . -j 1

or

cd ~/Paddle/build/paddle/fluid/eager/auto_code_generator &&  ~/Paddle/build/paddle/fluid/eager/auto_code_generator/eager_generator ~/Paddle/paddle/fluid/eager/api/generated/fluid_generated 8

版本&环境信息 Version & Environment Information

🏃‍♂️ Environment (运行环境)

OS: ubuntu 22.04 GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 Clang version: 17.0.6 (https://github.com/llvm/llvm-project.git 6009708b4367171ccdbf4b5905cb6a803753fe18) CMake version: version 3.22.1 Libc version: glibc 2.35 Python version: 3.10.15

CUDA version: 12.4.131 Build cuda_12.4.r12.4/compiler.34097967_0 cuDNN version: 9.4.0 Nvidia driver version: 560.35.03 Nvidia driver List: GPU 0: NVIDIA GeForce RTX 4090 GCC: gcc 11 Clang: 17.0.6 (tried both GCC and Clang) Memory: 64GB Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 39 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 32 On-line CPU(s) list: 0-31 Vendor ID: GenuineIntel Model name: Intel(R) Core(TM) i9-14900KF CPU family: 6 Model: 183 Thread(s) per core: 2 Core(s) per socket: 24 Socket(s): 1 Stepping: 1 CPU max MHz: 6000.0000 CPU min MHz: 800.0000 BogoMIPS: 6374.40

xuesu avatar Oct 16 '24 22:10 xuesu