Skip to content

Commit

Permalink
Merge pull request #26580 from adibbley/cublasmp
Browse files Browse the repository at this point in the history
Adding cublasMp recipes
  • Loading branch information
carterbox authored Sep 10, 2024
2 parents 5089161 + c807d53 commit 8d2e5e3
Show file tree
Hide file tree
Showing 3 changed files with 269 additions and 0 deletions.
38 changes: 38 additions & 0 deletions recipes/cublasmp/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{% set version = "0.2.1" %}

package:
name: cublasmp
version: {{ version }}

source:
url: https://developer.download.nvidia.com/compute/cublasmp/redist/libcublasmp/LICENSE.txt
sha256: c2a95a3d181879325e56333d7a592bb6ba5ab3a44bfde9574513ccc2f87f9c68

build:
number: 0
noarch: generic

requirements:
run:
- libcal-dev 0.4.3.36
- libcublasmp-dev 0.2.1.427

test:
commands:
- exit 0

about:
home: https://developer.nvidia.com/cuda-toolkit
license_file: LICENSE.txt
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_url: https://docs.nvidia.com/cuda/eula/index.html
summary: Meta-package containing all NVIDIA cublasMp packages, not intended for use in a conda-build context.
description: |
NVIDIA cublasMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/index.html

extra:
recipe-maintainers:
- conda-forge/cuda
115 changes: 115 additions & 0 deletions recipes/libcal/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{% set version = "0.4.3.36" %}
{% set lib_version = version.split(".")[0]+"."+version.split(".")[1]+"."+version.split(".")[2]+".0" %}
{% set platform = "linux-x86_64" %} # [linux64]
{% set platform = "linux-sbsa" %} # [aarch64]
{% set extension = "tar.xz" %}

{% set cuda_major = environ.get("cuda_compiler_version", "11.2").split(".")[0] %}

package:
name: libcal
version: {{ version }}

source:
url: https://developer.download.nvidia.com/compute/cublasmp/redist/libcal/{{ platform }}/libcal-{{ platform }}-{{ version }}_cuda{{ cuda_major }}-archive.{{ extension }}
sha256: 271d9951ee5b5e4e6e9fcb7079ce3c36f5dd581b3a0f7d1937f81e0c0e058fb8 # [linux64 and (cuda_compiler_version or "").startswith("11")]
sha256: eac07cc1524b37c693944e3e91c4857ed66bc2bb2579407ce9795916c9a113a4 # [linux64 and (cuda_compiler_version or "").startswith("12")]
sha256: d0016b62d42916e37cd065279eb8fa4947e3423220812c696c09ea417477c770 # [aarch64 and (cuda_compiler_version or "").startswith("11")]
sha256: 3500c18236fc449cf0395ee422c5a1771ce6349dc547951eaa6562ffc4fc762c # [aarch64 and (cuda_compiler_version or "").startswith("12")]

build:
number: 0
skip: true # [not (linux64 or aarch64)]
missing_dso_whitelist:
- "*/libcuda.so.*"
script:
- cp -rv include $PREFIX
- cp -rv lib $PREFIX
- mkdir -p $PREFIX/share/libcal

test:
commands:
- test -L $PREFIX/lib/libcal.so.0
- test -f $PREFIX/lib/libcal.so.{{ lib_version }}

outputs:
- name: libcal
build:
run_exports:
- {{ pin_subpackage("libcal", max_pin="x") }}
files:
- lib/libcal.so.*
requirements:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- {{ compiler('cuda') }}
- arm-variant * {{ arm_variant_type }} # [aarch64]
- {{ stdlib("c") }}
host:
- cuda-version {{ cuda_compiler_version }}
- ucc
run:
- {{ pin_compatible("cuda-version", max_pin="x") }}
- ucc
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
# Tests are defined at the top level, due to package/output name conflicts.
about:
home: https://docs.nvidia.com/cuda/cublasmp/
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/cublasmp/license/index.html
summary: NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
description: |
NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/cublas/

- name: libcal-dev
build:
run_exports:
- {{ pin_subpackage("libcal", max_pin="x") }}
files:
- lib/libcal.so
- include/cal.h
requirements:
host:
- cuda-version {{ cuda_compiler_version }}
run:
- {{ pin_compatible("cuda-version", max_pin="x") }}
- {{ pin_subpackage("libcal", exact=True) }}
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
test:
commands:
- test -f $PREFIX/include/cal.h
- test -L $PREFIX/lib/libcal.so
about:
home: https://docs.nvidia.com/cuda/cublasmp/
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/cublasmp/license/index.html
summary: NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
description: |
NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/cublas/

about:
home: https://docs.nvidia.com/cuda/cublasmp/
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/cublasmp/license/index.html
summary: NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
description: |
NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/cublas/

extra:
recipe-maintainers:
- conda-forge/cuda
116 changes: 116 additions & 0 deletions recipes/libcublasmp/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{% set version = "0.2.1.427" %}
{% set lib_version = version.split(".")[0]+"."+version.split(".")[1]+"."+version.split(".")[2] %}
{% set platform = "linux-x86_64" %} # [linux64]
{% set platform = "linux-sbsa" %} # [aarch64]
{% set extension = "tar.xz" %}

{% set cuda_major = environ.get("cuda_compiler_version", "11.2").split(".")[0] %}

package:
name: libcublasmp
version: {{ version }}

source:
url: https://developer.download.nvidia.com/compute/cublasmp/redist/libcublasmp/{{ platform }}/libcublasmp-{{ platform }}-{{ version }}_cuda{{ cuda_major }}-archive.{{ extension }}
sha256: 891e86a28cfe08772f2485e4db7ec8d28292e6a1b0e78967d08404c8371925b5 # [linux64 and (cuda_compiler_version or "").startswith("11")]
sha256: d86648a6e1f1d35eb25af258e1828e483aa07c568b95941f349fc68316f56290 # [linux64 and (cuda_compiler_version or "").startswith("12")]
sha256: 5f5813814343e83eeb743ddb4b1df0b346cdbf2b2026b32a0bc4a349361ec8e4 # [aarch64 and (cuda_compiler_version or "").startswith("11")]
sha256: d6cacf073bf87987b0f20a7a5a168ec503264d295e3aebf9df177326e8fcb286 # [aarch64 and (cuda_compiler_version or "").startswith("12")]

build:
number: 0
skip: true # [not (linux64 or aarch64)]
script:
- cp -rv include $PREFIX
- cp -rv lib $PREFIX

test:
commands:
- test -L $PREFIX/lib/libcublasmp.so.0
- test -f $PREFIX/lib/libcublasmp.so.{{ lib_version }}

outputs:
- name: libcublasmp
build:
run_exports:
- {{ pin_subpackage("libcublasmp", max_pin="x") }}
files:
- lib/libcublasmp.so.*
requirements:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- {{ compiler('cuda') }}
- arm-variant * {{ arm_variant_type }} # [aarch64]
- {{ stdlib("c") }}
host:
- cuda-version {{ cuda_compiler_version }}
- libcublas # [(cuda_compiler_version or "").startswith("12")]
- cudatoolkit # [(cuda_compiler_version or "").startswith("11")]
- libcal 0.4.3.*
run:
- {{ pin_compatible("cuda-version", max_pin="x") }}
- libcublas # [(cuda_compiler_version or "").startswith("12")]
- cudatoolkit # [(cuda_compiler_version or "").startswith("11")]
- {{ pin_compatible("libcal", exact=True) }}
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
# Tests are defined at the top level, due to package/output name conflicts.
about:
home: https://docs.nvidia.com/cuda/cublasmp/
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/cublasmp/license/index.html
summary: NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
description: |
NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/cublas/

- name: libcublasmp-dev
build:
run_exports:
- {{ pin_subpackage("libcublasmp", max_pin="x") }}
files:
- lib/libcublasmp.so
- include/cublasmp.h
requirements:
host:
- cuda-version {{ cuda_compiler_version }}
run:
- {{ pin_compatible("cuda-version", max_pin="x") }}
- {{ pin_subpackage("libcublasmp", exact=True) }}
run_constrained:
- arm-variant * {{ arm_variant_type }} # [aarch64]
test:
commands:
- test -f $PREFIX/include/cublasmp.h
- test -L $PREFIX/lib/libcublasmp.so
about:
home: https://docs.nvidia.com/cuda/cublasmp/
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/cublasmp/license/index.html
summary: NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
description: |
NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/cublas/

about:
home: https://docs.nvidia.com/cuda/cublasmp/
license: LicenseRef-NVIDIA-End-User-License-Agreement
license_file: LICENSE
license_url: https://docs.nvidia.com/cuda/cublasmp/license/index.html
summary: NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
description: |
NVIDIA cuBLASMp is a high performance, multi-process, GPU accelerated library for distributed basic dense linear algebra.
cuBLASMp is compatible with 2D block-cyclic data layout and provides PBLAS-like C APIs.
A companion library, CAL, contains utilities to manage communicators and to synchronize processes in a safe way.
doc_url: https://docs.nvidia.com/cuda/cublas/

extra:
recipe-maintainers:
- conda-forge/cuda

0 comments on commit 8d2e5e3

Please sign in to comment.