Dmitry Babokin
Dmitry Babokin
Can you give a simple reproducer? I.e. tasksys.cpp can be used in many different modes, so it would be nice to see where we should start looking at it.
Refactoring existing code sounds ok. Question about CMake - I'm not sure I understand why you need it. Do you want to integrate building ISPC library into another project, which...
Thanks for working on this. Note, that when committing big chunks of code, it's difficult to review them, especially if the changes are refactoring + some meaningful changes. So I...
My first guess (without looking into the code), you are not passing target info correctly, so say avx2 specific LLVM IR may be passed to generic targets, which may not...
Initially it was caused by limitations in LLVM, but now LLVM allows targeting different CPUs in a single compilation module. Though, it will require non-trivial changes on ISPC side at...
Ideally we should do that within single compilation unit - i.e. compile functions for different targets within single LLVM bytecode module. Post-processing is also an option.
There's another weird thing about `torch_mlir._mlir_libs._jit_ir_importer` is that the lib is build empty, at least that's what I observe during my local build. And that does cause problems in macOS...
That's right, we are not fully following ABI for return structs. It's pretty hairy part of ABI on every platform and we were seeking for technically elegant way to solve...
All memory should be released by ISPCSync(). Could you trace what allocation is causing troubles? You can basically hack ISPCAlloc/ISPCLaunch/ISPCSync in tasksys.cpp and add printf tracing to see what memory...
I can reproduce it. The problem is that with gcc it pulls in gcc's `libgomp.so.1` instead of llvm's `libomp.so.5`. 🤔