Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[BUGFIX] Fix for MKL symbol name clashing issue (#18855). #19241

Merged
merged 1 commit into from
Oct 5, 2020

Conversation

akarbown
Copy link
Contributor

@akarbown akarbown commented Sep 28, 2020

Description

This change enables symbol exclusion of statically linked MKL libraries to avoid the name clashing issue #18855.
It's done for all the MXNET build types except for the Debug version to check the unit tests.

Checklist

Essentials

  • PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
  • Changes are complete (i.e. I finished coding on this PR)
  • All changes have test coverage
  • Code is well-documented

@mxnet-bot
Copy link

Hey @akarbown , Thanks for submitting the PR
All tests are already queued to run once. If tests fail, you can trigger one or more tests again with the following commands:

  • To trigger all jobs: @mxnet-bot run ci [all]
  • To trigger specific jobs: @mxnet-bot run ci [job1, job2]

CI supported jobs: [windows-gpu, clang, unix-cpu, centos-cpu, unix-gpu, edge, miscellaneous, windows-cpu, sanity, centos-gpu, website]


Note:
Only following 3 categories can trigger CI :PR Author, MXNet Committer, Jenkins Admin.
All CI tests must pass before the PR can be merged.

@akarbown
Copy link
Contributor Author

@mxnet-bot run ci [unix-cpu]

@mxnet-bot
Copy link

Jenkins CI successfully triggered : [unix-cpu]

@akarbown
Copy link
Contributor Author

@mxnet-bot run ci [unix-cpu]

@mxnet-bot
Copy link

Jenkins CI successfully triggered : [unix-cpu]

@akarbown akarbown changed the title [WIP] Fix for MKL symbol name clashing issue (#18855). [BUGFIX] Fix for MKL symbol name clashing issue (#18855). Oct 2, 2020
@akarbown
Copy link
Contributor Author

akarbown commented Oct 2, 2020

@mxnet-bot run ci [centos-gpu, windows-gpu]

@mxnet-bot
Copy link

Jenkins CI successfully triggered : [centos-gpu, windows-gpu]

@leezu leezu requested a review from samskalicky October 5, 2020 17:13
Copy link
Contributor

@leezu leezu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting review of @samskalicky regarding lib_api.h

@samskalicky
Copy link
Contributor

samskalicky commented Oct 5, 2020

I dont think we want to exclude all symbols when building the libmxnet.so, thats why we have the version script. We need to expose some symbols in order to improve the C/C++ building flow and support external components in the future. So making this change will make it harder in the future.

Whats the rationale behind switching from version script to exclude all?

@leezu looks like the last change to the version script was from you that exported symbols needed for Horovod. If we make this change will it break the symbols needed for Horovod, bytePS, etc?

@leezu
Copy link
Contributor

leezu commented Oct 5, 2020

@samskalicky I think you misunderstand the change. -Wl,--exclude-libs,ALL excludes symbols from statically linked third-party libraries.

Copy link
Contributor

@samskalicky samskalicky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a chat with @leezu and we decided that the version script can be deprecated in this PR. In the future when we want to control which symbols we expose we'll discuss a more manageable approach like directly setting attributes on teh symbols we want to expose in the code. So this change looks good to me for now. Thanks @akarbown!

@leezu leezu merged commit 58e3d7f into apache:master Oct 5, 2020
@akarbown akarbown deleted the sym_stat_libs branch November 16, 2020 10:28
@access2rohit access2rohit mentioned this pull request Feb 17, 2021
13 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants