Closed regro-cf-autotick-bot closed 2 years ago
Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe
) and found it was in an excellent condition.
Hi @kmaehashi @emcastillo Any chance the errors in the Win + CUDA 11.2 CIs look familiar to you?
The first error seems here: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=561424&view=logs&j=84cf05f7-5267-5f38-137b-63208e75d05b&t=7c51bcc0-b6e0-5e4f-1968-7bb191e490bd&l=2192
I haven't seen this before, but maybe Visual Studio version used in the build bumped recently? https://stackoverflow.com/a/67736902/8860262
Potentially related ( https://github.com/conda-forge/vc-feedstock/pull/48 )
@jakirkham I think we can try downgrading the vs version, but how to do it in meta.yaml
?
Ahh ok so during rerendering the bot changed the compiler from vc2017
to vc2019
. I didn't notice it as the diff was hidden. Let's roll it back and give it a shot.
There's still one problem remaining, though: Why does CUDA 11.2 hate vc2019, but not 11.1 and earlier (including 10.2)?
It seems the real culprit is https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/3167, not the vc2019 update (in the vc-feedstock).
@kmaehashi @jakirkham thank you for your help, I was clueless! I see two potential solutions:
Any preference which we should try first?
There's still one problem remaining, though: Why does CUDA 11.2 hate vc2019, but not 11.1 and earlier (including 10.2)?
I've used vs2019 + CUDA 11.2 for a long time in the faiss feedstock.
Based on the traceback it indeed looks like it might have something to do with the update of the redistributable (although I'd have said that the chance for that should have been really low). If you want, you can check if using vs2015_runtime<14.29.30339
changes anything.
Also interesting: the traceback contains 14.29.30133
(presumably from the windows-2019 image), while https://github.com/conda-forge/vc-feedstock/pull/48 uses 14.29.30139
.
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DCUPY_NO_NVTX=1 -D_FORCE_INLINES=1 -DCUPY_CUB_VERSION_CODE=101000 -DCUPY_JITIFY_VERSION_CODE=-1 "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include\cub" -ID:\bld\cupy_1662012999200\work\cupy/_core/include "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -ID:\bld\cupy_1662012999200\_h_env\include -ID:\bld\cupy_1662012999200\_h_env\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\cppwinrt" -ID:\bld\cupy_1662012999200\_h_env\Library\include "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -ID:\bld\cupy_1662012999200\_h_env\Library\include /d1trimfile:D:\bld\cupy_1662012999200\work /EHsc /Tpcupy\_core\dlpack.cpp /Fobuild\temp.win-amd64-cpython-37\Release\cupy\_core\dlpack.obj
dlpack.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xutility(1260): error: expected a "("
detected during instantiation of "void std::_Adl_verify_range(const _Iter &, const _Sentinel &) [with _Iter=const char *, _Sentinel=const char *]"
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\xlocale(1971): here
CC @isuruf
Does the Windows image also have a copy of the compiler toolchain?
Does the Windows image also have a copy of the compiler toolchain?
Seems so. That path definitely looks like it's not from conda.
@conda-forge-admin, please rerender
Hi! This is the friendly automated conda-forge-webservice.
I tried to rerender for you, but it looks like there was nothing to do.
This message was generated by GitHub actions workflow run https://github.com/conda-forge/cupy-feedstock/actions/runs/3003678551.
@conda-forge-admin, please rerender
@kmaehashi I have some clues, please help me verify my theory.
CuPy relies on distutils, which records the host compiler information that is used to build Python. Conda-forge's Python was built with vs2017, and for some reason the version 14.29.30133
was used (search its build log) instead of the ones distributed on conda-forge, thus we're hitting this issue.
If my theory is correct, rolling back to vs2017 (as done in commit 464c701) would fix it.
Rolling back system-wide compiler to vs2017 sounds good to me.
To my understanding, setuptools/distutils discovers Visual Studio only from system-wide installation unless DISTUTILS_USE_SDK
is set. If that env var is set, setuptools does nothing so Visual Studio env vars need to be set by the calling process (usually via vcvarsall.bat
batch file which is a part of Visual Studio.)
Thanks for pointer, @kmaehashi! I see it's documented here: https://setuptools.pypa.io/en/latest/deprecated/distutils/apiref.html?highlight=DISTUTILS_USE_SDK#module-distutils.msvccompiler.
To be clear we should not use system compiler on conda-forge. However, in this case it's leaking from python-feedstock, leaving us no choice but to follow because
Typically, extension modules need to be compiled with the same compiler that was used to compile Python.
I will open an issue in python-feedstock to track this (though I doubt it's fixable there), but for now we'll have to live with it.
Typically, extension modules need to be compiled with the same compiler that was used to compile Python.
That's a general recommendation because most people have no idea/capabilities to track the impact the compiler has on the ABI of certain packages. But VS2015-VS2022 is compatible, and conda-forge is very careful about these things.
To be clear we should not use system compiler on conda-forge. However, in this case it's leaking from python-feedstock, leaving us no choice but to follow because
I don't understand what you mean by system compilers. Conda-forge does its own setup for the Microsoft compilers, and you should use that (e.g. vs2017 or vs2019; if you add that in the conda_build_config.yaml and rerender, it'll get picked up). We only cannot redistribute it due to license reasons.
I don't understand what you mean by system compilers.
@h-vetinari Please see https://github.com/conda-forge/cupy-feedstock/pull/179#issuecomment-1238814913 as a response to your finding in https://github.com/conda-forge/cupy-feedstock/pull/179#issuecomment-1234806005. Pay attention to the version number 14.29.30133
. This is the "leak".
and you should use that (e.g. vs2017 or vs2019; if you add that in the conda_build_config.yaml and rerender, it'll get picked up).
Yup it is done in the current PR.
@h-vetinari Please see #179 (comment) as a response to your finding in #179 (comment). Pay attention to the version number
14.29.30133
. This is the "leak".
There are different components involved here, the compiler and the redistributable (and so on). Both should be compatible with each other. Microsoft has kept compatibility in the whole 14.x line, so I think it's a stretch for me to imagine that 14.29.30133
and 14.29.30139
are somehow incompatible. It's probably a symptom of something else.
Perhaps @isuruf knows what's happening...
Yeah, and thanks for the compatibility note, I wasn't aware of the msvc support range. Anyway, we're good with vs2017. We can discuss the remaining puzzles
either here or elsewhere.
I will open an issue in python-feedstock to track this
It is very likely that the current package version for this feedstock is out of date.
Checklist before merging this PR:
license_file
is packagedInformation about this PR:
please add bot automerge
in the title and merge the resulting PR. This command will add our bot automerge feature to your feedstock.bot-rerun
label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have theconda-forge-admin
add it for you.Dependency Analysis
We couldn't run dependency analysis due to an internal error in the bot. :( Help is very welcome!
This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/2968944341, please use this URL for debugging.