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 libcufft recipe #21902

Merged
merged 49 commits into from
Apr 10, 2023
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
ed8ff30
Add libcufft recipy
seberg Jan 30, 2023
c25e9f4
Skip libcufft-static on windows (non-linux)
seberg Jan 30, 2023
6b860df
Add libcudart as a dependency (is >= 12.0 good?)
seberg Jan 30, 2023
ac37e27
Fix windows file check test
seberg Jan 30, 2023
3299c09
Comment out cuda-cudart dependency for the time being
seberg Jan 30, 2023
adb7c8a
Model windows bld.bat after the cudart pattern
seberg Jan 30, 2023
1ee2434
Apply suggestions from code review
seberg Jan 30, 2023
6a46f3e
Fixup pkgconfig file paths
seberg Jan 30, 2023
bc392d0
Apply further changes (to includes) which got forgotten due to conflict
seberg Jan 30, 2023
aea0658
Mark run_exoports as linux (also in cudart) and rename to cuda-libcufft*
seberg Jan 30, 2023
ccfd086
Remova cuda- prefix again (and rename folder, not sure it matters)
seberg Jan 30, 2023
75d2917
readd missing_dso_whitelist although I somewhat assume there is a bet…
seberg Jan 30, 2023
d4040ed
Add targets/*/lib/*.a to static export
seberg Jan 31, 2023
1bb6383
Its `if not exist` not, `if not exists`
seberg Jan 31, 2023
eac3f3b
Apply suggestions from code review (part 1)
seberg Jan 31, 2023
1e4a50e
Update recipes/libcufft/meta.yaml
seberg Feb 1, 2023
eda054a
Try modifying the strong run export to be libcufft itself?
seberg Feb 1, 2023
f6b7f39
And try removing it entirely
seberg Feb 1, 2023
a1468c6
Tag static dependency with `[linux]` (as `libcufft-static` is only li…
seberg Feb 1, 2023
2af60b1
Try moving build requirement to subpackages
seberg Feb 1, 2023
322aa4c
trying around (maybe nothing more but retrigger CI again)
seberg Feb 1, 2023
b1a3433
Add lib folder creation?!
seberg Feb 1, 2023
9e4aaa7
Update recipes/libcufft/meta.yaml
seberg Feb 1, 2023
8a9fdf2
Larger update, trying to be more like cudart (likely still issues com…
seberg Feb 6, 2023
810a305
fixup typo
seberg Feb 6, 2023
a320713
remove pkgconfig from `-dev_target` and fix lib typos
seberg Feb 6, 2023
a70467b
Add missing weak-run exports also on `-dev_targets`
seberg Feb 7, 2023
2c81f0c
Fix tests: we are exporting links in non-targeted versions only
seberg Feb 7, 2023
bd04253
windows has no dev files right now here, also skip `files:`
seberg Feb 7, 2023
25070d9
fix windows bin includes (the * pulled in a lot of other runtime)
seberg Feb 7, 2023
8899d50
experiment with script.
seberg Feb 7, 2023
264449b
fixup scripts
seberg Feb 7, 2023
aa13199
fix command, more tries with script; put in subpackage outputs?
seberg Feb 7, 2023
eabc23a
Do I need to make sure paths exists on windows when using script:?
seberg Feb 7, 2023
13f2774
copy rather than move in bat file?
seberg Feb 7, 2023
0d8d852
Revert back to not using `script:` but relying on precise wildcards
seberg Feb 8, 2023
225ef1a
Try using top-=level script once more
seberg Feb 9, 2023
4551c42
Apply suggestions from code review
seberg Mar 22, 2023
50279eb
Update as per Johns comment and remove cross compiling target split
seberg Mar 22, 2023
dc8ad89
Removing the cross compilation split means we need to use `-f` tests …
seberg Mar 22, 2023
62af404
Undo rename of the install/build script...
seberg Mar 22, 2023
a8bf363
Make some globs more precise and fix link tests (unversioned .so are …
seberg Mar 22, 2023
8266160
Merge branch 'main' into libcufft
seberg Mar 22, 2023
74e28c7
fix incorrect linux-only tag
seberg Mar 22, 2023
229329c
Merge branch 'main' into libcufft
jakirkham Mar 27, 2023
ec9529a
Update as per guidance (should mirror cublas almost perfectly)
seberg Apr 6, 2023
dd6a1dd
fixup (and slightly cleanup) mainly tests
seberg Apr 6, 2023
603ccda
Add missing target name for win (not actually used anywhere I think)
seberg Apr 6, 2023
f8e8938
Added a conda_build_config.yaml for arm-variant and other minor changes.
bdice Apr 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions recipes/libcufft/bld.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if not exist %PREFIX% mkdir %PREFIX%

move lib\x64\* %LIBRARY_LIB%
move bin\* %LIBRARY_BIN%
move include\* %LIBRARY_INC%
26 changes: 26 additions & 0 deletions recipes/libcufft/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash

# Install to conda style directories
[[ -d lib64 ]] && mv lib64 lib
[[ -d pkg-config ]] && mv pkg-config ${PREFIX}/lib/pkgconfig
[[ -d "$PREFIX/lib/pkgconfig" ]] && sed -E -i "s|cudaroot=.+|cudaroot=$PREFIX|g" $PREFIX/lib/pkgconfig/cufft*.pc

[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux"
[[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux"
[[ ${target_platform} == "linux-aarch64" ]] && targetsDir="targets/sbsa-linux"

for i in `ls`; do
[[ $i == "build_env_setup.sh" ]] && continue
[[ $i == "conda_build.sh" ]] && continue
[[ $i == "metadata_conda_debug.yaml" ]] && continue
if [[ $i == "lib" ]] || [[ $i == "include" ]]; then
mkdir -p ${PREFIX}/${targetsDir}
mkdir -p ${PREFIX}/$i
cp -rv $i ${PREFIX}/${targetsDir}
for j in `ls $i`; do
ln -s ../${targetsDir}/$i/$j ${PREFIX}/$i/$j
done
else
cp -rv $i ${PREFIX}
fi
done
108 changes: 108 additions & 0 deletions recipes/libcufft/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
{% set name = "cufft" %}
jakirkham marked this conversation as resolved.
Show resolved Hide resolved
{% set version = "11.0.0.21" %}
seberg marked this conversation as resolved.
Show resolved Hide resolved
{% set platform = "linux-x86_64" %} # [linux64]
{% set platform = "linux-ppc64le" %} # [ppc64le]
{% set platform = "linux-sbsa" %} # [aarch64]
{% set platform = "windows-x86_64" %} # [win]
{% set extension = "tar.xz" %} # [not win]
{% set extension = "zip" %} # [win]

package:
name: {{ name|lower }}
version: {{ version }}

source:
url: https://developer.download.nvidia.com/compute/cuda/redist/libcufft/{{ platform }}/libcufft-{{ platform }}-{{ version }}-archive.{{ extension }}
sha256: 4650f79fcf377af410afedb56445f1332e8f213ec3c94d660f9a91328c3ecb4a # [linux64]
sha256: e711671995e9d92d16015a4cd3751ec30710a49fa22f2b88a4a42905c248d861 # [ppc64le]
sha256: 91aa1ba5e68ca65778222c9a427a9214c4550d2f45e978e51779a207bafc17a3 # [aarch64]
sha256: a33f577d48ef432d5cfa8d0ebfa789cc5261af5dd84fd9c608235edc3f769e43 # [win]


build:
number: 0
skip: true # [osx]
run_exports: # [linux]
strong: # [linux]
- __glibc >=2.17 # [linux]
missing_dso_whitelist:
- /lib64/libdl.so.2 # [linux]
- /lib64/libm.so.6 # [linux]
- /lib64/libpthread.so.0 # [linux]
- /lib64/librt.so.1 # [linux]
- /lib64/libgcc_s.so.1 # [linux]
- /lib64/libc.so.6 # [linux]
- /lib64/ld-linux-x86-64.so.2 # [linux]
seberg marked this conversation as resolved.
Show resolved Hide resolved


requirements:
build:
- {{ compiler("c") }}
- {{ compiler("cxx") }}
jakirkham marked this conversation as resolved.
Show resolved Hide resolved
host:
- sysroot_{{ target_platform }} 2.17 # [linux]
- __glibc >=2.17 # [linux]
run:
- sysroot_{{ target_platform }} 2.17 # [linux]
- __glibc >=2.17 # [linux]


outputs:
- name: libcufft
seberg marked this conversation as resolved.
Show resolved Hide resolved
test:
commands:
- test -f $PREFIX/lib/libcufft.so.{{ version }} # [linux]
- if not exists %LIBRARY_BIN%\cufft64_11.dll exit 1 # [win]
files:
- lib/libcufft*.so.* # [linux]
- targets/*/lib/*.so.* # [linux]
- Library\bin # [win]

- name: libcufft-dev
test:
commands:
- test -f $PREFIX/include/cufft.h # [linux]
- if not exists %LIBRARY_LIB%\cufft.lib exit 1 # [win]
requirements:
run:
- libcufft >={{ version }}
# - cuda-cudart >=12.0
files:
- lib/*.so # [linux]
- targets/*/lib/*.so # [linux]
- lib/stubs # [linux]
- include # [linux]
- targets/*/include/* # [linux]
- lib/pkgconfig # [linux]
- Library\include # [win]
- Library\lib # [win]

- name: libcufft-static
build:
skip: True # [not linux]
test:
commands:
- test -f $PREFIX/lib/libcufft_static.a
jakirkham marked this conversation as resolved.
Show resolved Hide resolved
requirements:
seberg marked this conversation as resolved.
Show resolved Hide resolved
run:
- libcufft-dev >={{ version }}
files:
- lib/libcufft*_static.a
- lib/libcufft_static_nocallback.a


about:
home: https://developer.nvidia.com/cuda-toolkit
license_file: LICENSE
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: 'cuFFT native runtime libraries'
description: |
The CUDA Fast Fourier Transform library
doc_url: https://docs.nvidia.com/cuda/cufft/index.html

extra:
recipe-maintainers:
- adibbley
- jakirkham
- seberg