This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Pytorch with APL

Hello, 

I am trying to build and use Pytorch with APL on Windows. The build seems successful, but I get errors such as: 

  1. On entry to SGEMM  parameter number 10 had an illegal value
  2. On entry to DGEMM  parameter number 13 had an illegal value

Can you help us identify the problem? Can it be a problem with the build or is it an APL bug? 

Parents
  • Hi Chris, I have 2 follow-up questions for you. I was trying to build pytorch on arm with both a single threaded and a multithreaded variant and I ran into this issue: 

    armpl_lp64_mp.lib: unresolved external symbol __kmpc_fork_call

    armpl_lp64_mp.lib: unresolved external symbol __kmpc_global_thread_num

    armpl_lp64_mp.lib: unresolved external symbol __kpmc_for_static_fini

    armpl_lp64_mp.lib: unresolved external symbol __kpmc_for_static_init_8

    armpl_lp64_mp.lib: unresolved external symbol __kpmc_barrier

     Do you maybe have an idea what am I missing? 

    Also, I came across this page on the documentation: Get started with Arm Performance Libraries (stand-alone Linux version). From that table it looks like there is no difference between single and multithreaded 32 bit libraries, is that correct ?

Reply
  • Hi Chris, I have 2 follow-up questions for you. I was trying to build pytorch on arm with both a single threaded and a multithreaded variant and I ran into this issue: 

    armpl_lp64_mp.lib: unresolved external symbol __kmpc_fork_call

    armpl_lp64_mp.lib: unresolved external symbol __kmpc_global_thread_num

    armpl_lp64_mp.lib: unresolved external symbol __kpmc_for_static_fini

    armpl_lp64_mp.lib: unresolved external symbol __kpmc_for_static_init_8

    armpl_lp64_mp.lib: unresolved external symbol __kpmc_barrier

     Do you maybe have an idea what am I missing? 

    Also, I came across this page on the documentation: Get started with Arm Performance Libraries (stand-alone Linux version). From that table it looks like there is no difference between single and multithreaded 32 bit libraries, is that correct ?

Children
  • Hi. 

    I think you'll be better off with the latest version of the Windows documentation which has more details in it.  On that page you can see that to link to the OpenMP (*_mp) version you also need to include the relevant omp.dll library.  In the first example you can see that includes the compile line:


    cl.exe /MD armpl_dgemm_interleave_batch_c_example.obj C:\arm-performance-libraries_23.10\armpl_23.10\lib\armpl_lp64_mp.dll.lib C:\arm-performance-libraries_23.10\armpl_23.10\lib\FortranRuntime.lib C:\arm-performance-libraries_23.10\armpl_23.10\lib\FortranDecimal.lib C:\arm-performance-libraries_23.10\armpl_23.10\lib\omp.dll.lib /Fearmpl_dgemm_interleave_batch_c_example.exe

    where the  "C:\arm-performance-libraries_23.10\armpl_23.10\lib\omp.dll.lib" option is the specification of the OpenMP library that will provide your missing symbols.

    Hope that helps.

    Chris