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

mxnet_75.dll chosen, even if there is newer mxnet_86.dll present #19579

@m-ky

Description

@m-ky

Description

MXNet 1.8.0.rc2, Windows 10, Cuda 11, NVIDIA RTX 3090, C++ build from source
After build there are several mxnet_XY.dll, where X is cuda major and Y minor version. For RTX 3090 mxnet_86.dll should be used.
However this dll is not chosen, instead it tries to select mxnet_75.dll.
This causes:

  1. Either mxnet_75.dll is there, which causes PTX compilation to start, if mxnet_75.dll contains PTX code (even if there is mxnet_86.dll that can be used right away).
  2. Or mxnet_75.dll is not there, which crashes program on first use of any mxnet function (nullpointer).

Error Message

Either unnecessarily builds PTX code (if it is present), or crashes on nullpointer exception when mxnet_75.dll is not present.

To Reproduce

Build C++ package from source on Windows using Cuda 11.
MXNET_CUDA_ARCH can be auto (on RTX 3090 this means sm86), or all.
The use any mxnet function from C++.

What have you tried to solve it?

In file tools/windowsbuild/warp_dll.cpp, there is function find_version() that should return which mxnet sm version should be used.
Third line in that function should be changed to:
int version = 86;

Environment

MXNet 1.8.0.rc2, Windows 10, Cuda 11, NVIDIA RTX 3090, C++ build from source

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions