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

Revise libcufile recipe / fix tests. #1

Merged
merged 6 commits into from
Apr 12, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
6 changes: 4 additions & 2 deletions recipes/libcufile/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
[[ -d lib64 ]] && mv lib64 lib
mkdir -p ${PREFIX}/lib
mkdir -p ${PREFIX}/gds
mv samples ${PREFIX}/gds/samples
mv tools ${PREFIX}/gds/tools
mv -v etc ${PREFIX}/etc
mv -v man ${PREFIX}/man
mv -v samples ${PREFIX}/gds/samples
mv -v tools ${PREFIX}/gds/tools
[[ -d pkg-config ]] && mv pkg-config ${PREFIX}/lib/pkgconfig
[[ -d "$PREFIX/lib/pkgconfig" ]] && sed -E -i "s|cudaroot=.+|cudaroot=$PREFIX|g" $PREFIX/lib/pkgconfig/cufile*.pc

Expand Down
4 changes: 2 additions & 2 deletions recipes/libcufile/conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
arm_variant_type: # [aarch64]
- sbsa # [aarch64]
arm_variant_type: # [aarch64]
- sbsa # [aarch64]
89 changes: 64 additions & 25 deletions recipes/libcufile/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,41 @@ source:

build:
number: 0
skip: true # [not linux]
skip: true # [not (linux64 or aarch64)]

test:
commands:
# Note that the version of libcufile does not match
# {{ version.split(".")[0] }} but the major version of libcufile_rdma does
# match that. Also we must drop the last component of the version when
# finding the versioned .so file.
{% set full_version = version.split(".")[:-1] | join(".") %}
- test -f $PREFIX/etc/cufile.json
- test -L $PREFIX/lib/libcufile.so.0
- test -L $PREFIX/lib/libcufile_rdma.so.{{ version.split(".")[0] }} # [linux64]
- test -L $PREFIX/lib/libcufile.so.{{ full_version }}
- test -L $PREFIX/lib/libcufile_rdma.so.{{ full_version }} # [linux64]
- test -L $PREFIX/targets/{{ target_name }}/lib/libcufile.so.0
- test -L $PREFIX/targets/{{ target_name }}/lib/libcufile_rdma.so.{{ version.split(".")[0] }} # [linux64]
- test -f $PREFIX/targets/{{ target_name }}/lib/libcufile.so.{{ full_version }}
- test -f $PREFIX/targets/{{ target_name }}/lib/libcufile_rdma.so.{{ full_version }} # [linux64]

outputs:
- name: libcufile
build:
missing_dso_whitelist:
- "*/libcuda.so.*" # [linux]
run_exports:
- {{ pin_subpackage("libcufile", max_pin="x") }}
- "*/libcuda.so.*"
# TODO: The following libraries are required for libcufile_rdma.so,
# which is only for linux64 (not aarch64). What provides these?
# rdma-core-devel-cos7-x86_64 is close, but doesn't seem to work.
# Perhaps because the files are in a sysroot location?
bdice marked this conversation as resolved.
Show resolved Hide resolved
- "*/libmlx5.so.*"
bdice marked this conversation as resolved.
Show resolved Hide resolved
- "*/librdmacm.so.*"
- "*/libibverbs.so.*"
bdice marked this conversation as resolved.
Show resolved Hide resolved
files:
- lib/libcufile*.so.*
- etc/cufile.json
- lib/libcufile*.so.*
- targets/{{ target_name }}/lib/libcufile*.so.*
requirements:
build:
- {{ compiler("c") }}
bdice marked this conversation as resolved.
Show resolved Hide resolved
Expand All @@ -44,61 +67,74 @@ outputs:
- {{ pin_compatible("cuda-version", max_pin="x.x") }}
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
test:
commands:
- test -f $PREFIX/lib/libcufile.so.*
- test -f $PREFIX/lib/libcufile_rdma.so.*
- test -f $PREFIX/etc/cufile.json
# Tests are defined at the top level, due to package/output name conflicts.
about:
home: https://developer.nvidia.com/cuda-toolkit
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: |
Library for GPU Direct Storage with CUDA
summary: Library for NVIDIA GPUDirect Storage
description: |
The cuFile library provides a direct data path between GPU memory and storage.
doc_url: https://docs.nvidia.com/gpudirect-storage/api-reference-guide/index.html

- name: libcufile-dev
build:
run_exports:
- {{ pin_subpackage("libcufile", max_pin="x") }}
files:
- include/cufile*
- lib/libcufile*.so
- lib/pkgconfig
- targets/{{ target_name }}/include
- targets/{{ target_name }}/lib/libcufile*.so
- targets/{{ target_name }}/include/cufile*
- man/man3
requirements:
build:
- {{ compiler("c") }}
- {{ compiler("cxx") }}
- arm-variant * {{ arm_variant_type }} # [aarch64]
- sysroot_{{ target_platform }} 2.17 # [linux]
host:
- cuda-version {{ cuda_version }}
run:
- {{ pin_compatible("cuda-version", max_pin="x.x") }}
- {{ pin_subpackage("libcufile", exact=True) }}
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
- libcufile-static >={{ version }}
test:
commands:
- test -L $PREFIX/lib/libcufile.so
- test -L $PREFIX/lib/libcufile_rdma.so
- test -f $PREFIX/targets/{{ target_name }}/include/cufile.h
- test -L $PREFIX/targets/{{ target_name }}/lib/libcufile.so
- test -L $PREFIX/targets/{{ target_name }}/lib/libcufile_rdma.so
- test -d $PREFIX/man/man3
about:
home: https://developer.nvidia.com/cuda-toolkit
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: |
Library for GPU Direct Storage with CUDA
summary: Library for NVIDIA GPUDirect Storage
description: |
The cuFile library provides a direct data path between GPU memory and storage.
doc_url: https://docs.nvidia.com/gpudirect-storage/api-reference-guide/index.html

- name: libcufile-static
files:
- targets/{{ target_name }}/lib/libcufile*_static.a
- targets/{{ target_name }}/lib/libcufile*_static.a
requirements:
build:
- {{ compiler("c") }}
- {{ compiler("cxx") }}
- arm-variant * {{ arm_variant_type }} # [aarch64]
- sysroot_{{ target_platform }} 2.17 # [linux]
host:
- cuda-version {{ cuda_version }}
run:
- {{ pin_compatible("cuda-version", max_pin="x.x") }}
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
test:
commands:
- test -f $PREFIX/targets/{{ target_name }}/lib/libcufile_static.a
Expand All @@ -108,14 +144,15 @@ outputs:
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: |
Library for GPU Direct Storage with CUDA
summary: Library for NVIDIA GPUDirect Storage
description: |
The cuFile library provides a direct data path between GPU memory and storage.
doc_url: https://docs.nvidia.com/gpudirect-storage/api-reference-guide/index.html

- name: gds-tools
files:
- gds/samples
- gds/tools
- gds/tools
requirements:
build:
- {{ compiler("c") }}
Expand All @@ -125,7 +162,7 @@ outputs:
host:
- cuda-version {{ cuda_version }}
- libcufile-dev {{ version }}
- libnuma # [linux]
- libnuma # [linux]
run:
- {{ pin_compatible("cuda-version", max_pin="x.x") }}
- {{ pin_subpackage("libcufile", max_pin="x") }}
Expand All @@ -140,17 +177,19 @@ outputs:
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: |
Library for GPU Direct Storage with CUDA
summary: Library for NVIDIA GPUDirect Storage
description: |
The cuFile library provides a direct data path between GPU memory and storage.
doc_url: https://docs.nvidia.com/gpudirect-storage/api-reference-guide/index.html

about:
home: https://developer.nvidia.com/cuda-toolkit
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: |
Library for GPU Direct Storage with CUDA
summary: Library for NVIDIA GPUDirect Storage
description: |
The cuFile library provides a direct data path between GPU memory and storage.
doc_url: https://docs.nvidia.com/gpudirect-storage/api-reference-guide/index.html

extra:
Expand Down