Skip to content
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

Add libcublas recipe #21901

Merged
merged 46 commits into from
Mar 31, 2023
Merged

Add libcublas recipe #21901

merged 46 commits into from
Mar 31, 2023

Conversation

betatim
Copy link
Contributor

@betatim betatim commented Jan 30, 2023

Hello all 👋

this is my first time adding a package to conda-forge. I followed the example meta.yaml and this recipe is based on the existing one for libcublas in the nvidia conda channel. I'll see what the CI robots say about this first attempt.

@adibbley do you want to continue to be listed as maintainer for this recipe?

cc @jakirkham @adibbley
xref #21382

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • The summary item is expected in the about section.
  • The recipe must have some tests.
  • Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [2, 3, 4, 5, 13, 14, 15, 16]

@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • The summary item is expected in the about section.
  • The recipe must have some tests.

@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • The recipe must have some tests.

Instead of using a copy&paste license, refer to the LICENSE file already
in the zip.
@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • The top level meta keys are in an unexpected order. Expecting ['package', 'source', 'build', 'test', 'outputs', 'about', 'extra'].

@conda-forge-webservices
Copy link

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 (recipes/libcublas) and found it was in an excellent condition.

Copy link
Contributor

@adibbley adibbley left a comment

Choose a reason for hiding this comment

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

Looks like the wrong branch was started with, here are the 12.0.0 changes.

recipes/libcublas/bld.bat Outdated Show resolved Hide resolved
recipes/libcublas/bld.sh Outdated Show resolved Hide resolved
recipes/libcublas/meta.yaml Outdated Show resolved Hide resolved
recipes/libcublas/meta.yaml Show resolved Hide resolved
recipes/libcublas/meta.yaml Outdated Show resolved Hide resolved
recipes/libcublas/meta.yaml Outdated Show resolved Hide resolved
recipes/libcublas/meta.yaml Outdated Show resolved Hide resolved
@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • The recipe must have some tests.

@betatim
Copy link
Contributor Author

betatim commented Jan 30, 2023

Thanks for the hint about v12.

@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • The top level meta keys are in an unexpected order. Expecting ['package', 'source', 'build', 'requirements', 'test', 'outputs', 'about', 'extra'].

@conda-forge-webservices
Copy link

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 (recipes/libcublas) and found it was in an excellent condition.

@jakirkham jakirkham mentioned this pull request Jan 30, 2023
49 tasks
@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/libcublas) and found some lint.

Here's what I've got...

For recipes/libcublas:

  • Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [7, 8, 9, 10]

Co-authored-by: jakirkham <jakirkham@gmail.com>
@conda-forge-webservices
Copy link

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 (recipes/libcublas) and found it was in an excellent condition.

@jakirkham
Copy link
Member

@conda-forge/core @conda-forge/staged-recipes, please take a look when you have a moment

Copy link
Member

@beckermr beckermr left a comment

Choose a reason for hiding this comment

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

I see no obvious problems with the recipe. I am curious as to why the cuda tests don’t pass and if we expect that.

@jakirkham
Copy link
Member

Thanks Matt 🙏

Yeah that's expected since they are older CUDA versions. The relevant tests are the vanilla Linux and Windows tests (without CUDA)

Comment on lines +51 to +52
- test -L $PREFIX/lib/libcublas.so.{{ version }} # [linux]
- test -L $PREFIX/lib/libcublas.so.{{ version.split(".")[0] }} # [linux]
Copy link
Contributor

Choose a reason for hiding this comment

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

I've seen code that uses dlopen / dlsym as well as ctypes code that expects to use just the lib*.so as opposed to the versioned shared library at runtime. Not a blocker, but have we considered having the libcublas.so symlink in this package as opposed to the dev package? I know that the SONAME points to libcublas.so.12, but there's definitely code out there that will end up requiring libcublas-dev at runtime because of this.

Definitely not a blocker for getting this in though!

Copy link
Contributor

Choose a reason for hiding this comment

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

We've been reworking RAPIDS code to use the proper SONAME form, like libcublas.so.12, anywhere that we've seen that. I could see an argument that it's a bug to rely on dlopening the unversioned form? That said, I don't have a reference for how we've packaged this in other CUDA Toolkit deployments to know if this approach is "normal" or not. I agree that we shouldn't treat this as a blocker, and I'd be happy to discuss further if users run into specific issues.

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Member

Choose a reason for hiding this comment

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

Yeah this should be easy to add if we decide. Let's turn this into an issue on the feedstock, which will make it easier to track as well

Copy link
Member

Choose a reason for hiding this comment

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

Raised an issue ( conda-forge/libcublas-feedstock#1 )

@jakirkham jakirkham merged commit ff26f17 into conda-forge:main Mar 31, 2023
@jakirkham
Copy link
Member

Thanks all! 🙏

Let's get this in. We can iterate on anything else in the feedstock

@betatim
Copy link
Contributor Author

betatim commented Apr 3, 2023

Thanks for all the help and work!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

7 participants