-
Notifications
You must be signed in to change notification settings - Fork 63
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
legate.core/src/core/utilities/type_traits.h:85:46: error: ‘complex’ was not declared in this scope #667
Comments
Are you on branch |
@manopapad The legion branch is legion-22.12. I also tested the control_replication branch. The difference is that there is no error about legion'OutputRegion'. Everything else is the same. |
I believe this is happening because you are missing I submitted a PR to document the required Legion branch and configuration options #670, and will be in touch with the Legion devs to try and export these settings, so we can check for their presence when a user passes in a pre-built installation of Legion. |
@manopapad It's useful. I tried the following methods and the results were the same. However, an error is reported after the legate is successfully installed. Executing: " cmake --install /opt/home/xxx/hpc3/legion/build/bindings/python --prefix /home/xxx/anaconda3 " with {} |
Have you tried rebuilding Legion with the flags I suggested? I suggest you remove your old Legion installation and rebuild with:
Then install legate.core using Or alternatively you can let legate.core build Legion on its own, by not passing a |
@manopapad Rebuild the legion based on your suggestions. After the cmake is successfully executed, the following error message is displayed when the make command is executed: |
It this happening purely during Legion compilation? If so, could you please report this issue on the Legion bug tracker? I suspect it might have something to do with these flags |
@manopapad Thank you for your advice, someone here has replied. |
StanfordLegion/legion#1456 -DCMAKE_BUILD_TYPE=Release and rebuild the legion. Otherwise, the following error message is displayed: legion_python: /root/xxx/legion-control_replication/runtime/realm/timers.inl:72: static long long int Realm::Clock: :current_time_in_nanoseconds(bool): Assertion ‘nanoseconds <= uint64_t(LLONG_MAX)' failed. After the legate is successfully installed, run the legate command. The following error information is displayed: [0 - 7f4320297880] -1555852541.985930 {6}{python}: python exception occurred within task: |
This looks like a Realm issue (or rather, the output of some system timing function is not as Realm expects). If you have time, could you add this instrumentation and try building (and running) again with
Can you please share the full build commands that you used, and build output that you got, for Legion and legate.core? |
Add The following error information is displayed without
|
I reported the timing issue on StanfordLegion/legion#1459. You can probably continue using a release build while the issue is being fixed. Thanks for your help investigating this. Please share the command line you use to build in release mode, and the build outputs, so we can fix any remaining issues with that. And please make sure you include all the necessary Legion defines, when building Legion:
|
https://gitlab.com/StanfordLegion/legion/-/commit/78c5f3ab9c4ea1393183ca135fbca3c403a3113b legion control_replication |
Can you please try with legate.core branch 23.05? |
Modify legate.core/CMakeLists.txt
Or do not modify legate.core/CMakeLists.txt
|
I took a closer look at the original build outputs you posted on #667 (comment). It appears that both Legion and legate.core were on versions 22.12, which should be compatible. According to the Legion output, it appears that
It suggests that one specific function is missing, but I suspect the entire There is even a potentially relevant error message during Legion build:
@1193749292 can you check if @trxcllnt @jjwilke Can you please take a look at how @1193749292 is building Legion in the above linked comment? Should the Legion CFFI be getting installed somewhere else? |
It exists, and soft link to the file, I deleted both files and reinstalled legate.core, lrwxrwxrwx 1 root root 31 Apr 18 01:34 /root/miniconda3/envs/legion-xxx/lib/liblegion_canonical_python.so -> liblegion_canonical_python.so.1 |
Is the error still happening? |
@manopapad Yes, the error still happening |
@1193749292 can you run the @eddy16112 any idea why |
I think it is a linking issue. If you run into line 409, it means canonical python is not used, then why it tried to load |
@eddy16112 You're right, we're going through the
And please run |
|
|
Thanks for producing these outputs. The only thing that jumps out at me is that
|
@manopapad |
The
|
Note that we also need the |
Then run the command:
@jjwilke The legate problem is fixed, and then I'm going to install Cunumeric, which has some problems with the installation, here's the link, if you're interested. |
You should technically do the same |
Realm has the following in // the following defines are used to communicate which declarations are part
// of the "official" public Realm API (as opposed to things that need to be in
// the same header files for C++ reasons) - they also control which symbols
// appear in the shared library:
// REALM_PUBLIC_API - class/method/variable intended for direct use
// in applications
// REALM_INTERNAL_API_EXTERNAL_LINKAGE - method/variable not intended for
// direct use in applications but used indirectly and
// therefore requiring external linkage
// REALM_INTERNAL_API - method/variable that is not part of the public API
// despite being in an otherwise-public class
#ifdef REALM_LIMIT_SYMBOL_VISIBILITY
#define REALM_PUBLIC_API __attribute__((visibility("default")))
#define REALM_INTERNAL_API_EXTERNAL_LINKAGE __attribute__((visibility("default")))
#define REALM_INTERNAL_API __attribute__((visibility("hidden")))
#else
#define REALM_PUBLIC_API
#define REALM_INTERNAL_API_EXTERNAL_LINKAGE
#define REALM_INTERNAL_API
#endif What happens if you add |
some warning information is added during legion compilation.
The same warning information is displayed when the legate is installed. The legate can run properly. |
Just to be clear, did you add that token as a tag to the declaration of the symbol? I don't mean adding another copy of the diff --git a/runtime/legion/legion_c.h b/runtime/legion/legion_c.h
index de309d7d9..720b04a75 100644
--- a/runtime/legion/legion_c.h
+++ b/runtime/legion/legion_c.h
@@ -5780,6 +5780,7 @@ extern "C" {
/**
* @see Legion::LegionTaskWrapper::legion_task_preamble()
*/
+ REALM_INTERNAL_API_EXTERNAL_LINKAGE
void
legion_task_preamble(
const void *data, This will tell the compiler and linker that the symbol should be externally visible, which will ensure it is present in an optimized shared library even without any callers referring to it. I am not familiar with Legion and I see other instances of |
I believe adding The issue here appears to be that
In addition, |
Thank you, there is no such warning message.
|
Legion Build Commands:
cmake .. -S /home/xxx/hpc3/legion/ -D CMAKE_INSTALL_PREFIX=../install -D REALM_USE_OPENMP=ON -D Legion_USE_OpenMP=ON -D REALM_OPENMP_SYSTEM_RUNTIME=ON -D Legion_OpenMP_SYSTEM_RUNTIME=ON -D REALM_USE_MPI=ON -DLegion_NETWORKS=mpi -D Legion_MPI_INTEROP=ON -DLEGION_REDOP_HALF=ON -B ../build
Legate Installation Commands:
./install.py --network mpi --openmp --with-legion /home/xxx/hpc3/legion/build/ -v --nocuda --march native
Description: Ubuntu 20.04.5 LTS | aarch64
The following files are the installation output information.
legate.core-install_output.txt
The text was updated successfully, but these errors were encountered: