Date: Wednesday, December 28, 2022 @ 13:21:41
  Author: tpkessler
Revision: 1370830

archrelease: copy trunk to community-testing-x86_64

Added:
  rocrand/repos/community-testing-x86_64/
  rocrand/repos/community-testing-x86_64/PKGBUILD
    (from rev 1370829, rocrand/trunk/PKGBUILD)
  rocrand/repos/community-testing-x86_64/test.cpp
    (from rev 1370829, rocrand/trunk/test.cpp)
  rocrand/repos/community-testing-x86_64/test.sh
    (from rev 1370829, rocrand/trunk/test.sh)

----------+
 PKGBUILD |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 test.cpp |   36 ++++++++++++++++++++++++++++++++++++
 test.sh  |    5 +++++
 3 files changed, 90 insertions(+)

Copied: rocrand/repos/community-testing-x86_64/PKGBUILD (from rev 1370829, 
rocrand/trunk/PKGBUILD)
===================================================================
--- community-testing-x86_64/PKGBUILD                           (rev 0)
+++ community-testing-x86_64/PKGBUILD   2022-12-28 13:21:41 UTC (rev 1370830)
@@ -0,0 +1,49 @@
+# Maintainer: Torsten Keßler <tpkessler at archlinux dot org>
+# Contributor: Jakub Okoński <[email protected]>
+pkgname=rocrand
+pkgver=5.4.1
+pkgrel=2
+pkgdesc='Pseudo-random and quasi-random number generator on ROCm'
+arch=('x86_64')
+url='https://rocrand.readthedocs.io/en/latest/'
+license=('MIT')
+depends=('hip')
+makedepends=('rocm-cmake' 'gcc-fortran' 'python')
+optdepends=('gcc-fortran: Use Fortran wrapper'
+            'python: Use Python wrapper')
+_git='https://github.com/ROCmSoftwarePlatform/rocRAND'
+_hiprand='https://github.com/ROCmSoftwarePlatform/hipRAND'
+source=("$pkgname-$pkgver.tar.gz::$_git/archive/rocm-$pkgver.tar.gz"
+        
"$pkgname-hiprand-$pkgver.tar.gz::$_hiprand/archive/20ac3db9d7462c15a3e96a6f0507cd5f2ee089c4.tar.gz")
+sha256sums=('44eb2ec7fbbc782796173e0d3c10a65088fd76c0c3f06cc7cd1523505fe15257'
+            'ee38a68c9e88056b7ecd41553e496e455dbb3fe08871ff3545430d6733070e6b')
+_dirname="$(basename "$_git")-$(basename "${source[0]}" ".tar.gz")"
+_hipname="$(basename "$_hiprand")-$(basename "${source[1]}" ".tar.gz")"
+
+prepare() {
+  rm -r "$srcdir/$_dirname/hipRAND"
+  ln -s "$srcdir/$_hipname" "$srcdir/$_dirname/hipRAND"
+}
+
+build() {
+  # -fcf-protection is not supported by HIP, see
+  # 
https://docs.amd.com/bundle/ROCm-Compiler-Reference-Guide-v5.4/page/Appendix_A.html
+  CXXFLAGS="${CXXFLAGS} -fcf-protection=none" \
+  cmake \
+    -Wno-dev \
+    -B build \
+    -S "$_dirname" \
+    -DCMAKE_BUILD_TYPE=None \
+    -DCMAKE_CXX_COMPILER=/opt/rocm/hip/bin/hipcc \
+    -DCMAKE_INSTALL_PREFIX=/opt/rocm
+  cmake --build build
+}
+
+package() {
+  DESTDIR="$pkgdir" cmake --install build
+
+  echo '/opt/rocm/hiprand/lib' > rocrand.conf
+  echo '/opt/rocm/rocrand/lib' >> rocrand.conf
+  install -Dm644 rocrand.conf "$pkgdir/etc/ld.so.conf.d/$pkgname.conf"
+  install -Dm644 "$_dirname/LICENSE.txt" 
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}

Copied: rocrand/repos/community-testing-x86_64/test.cpp (from rev 1370829, 
rocrand/trunk/test.cpp)
===================================================================
--- community-testing-x86_64/test.cpp                           (rev 0)
+++ community-testing-x86_64/test.cpp   2022-12-28 13:21:41 UTC (rev 1370830)
@@ -0,0 +1,36 @@
+#include <hiprand/hiprand.hpp>
+#include <vector>
+#include <numeric>
+#include <cmath>
+#include <iostream>
+
+int main()
+{
+    size_t size = 1024 * 1024;
+    float mean = -1.24f;
+    float std = 0.43f;
+    hiprandGenerator_t gen;
+    hiprandCreateGenerator(&gen, HIPRAND_RNG_PSEUDO_DEFAULT);
+
+    float *x;
+    hipMalloc((void**)&x, sizeof *x * size);
+    hiprandGenerateNormal(gen, x, size, mean, std);
+
+    std::vector<float> x_d(size);
+    hipMemcpy(x_d.data(), x, sizeof *x * size, hipMemcpyDeviceToHost);
+
+    float mean_hat = std::accumulate(x_d.begin(), x_d.end(), 0.0f) / size;
+
+    // Tolerance set so that test may at most fail in 1 of 10,000 runs
+    float tol = 3e-1;
+    if(std::abs(mean - mean_hat) > tol){
+        std::cout << "Tolerance in mean not reached:\n"
+            << mean_hat << " differs more than " << tol
+            << " from " << mean << std::endl;
+        return 1;
+    }
+    std::cout << "TESTS PASSED!" << std::endl;
+
+    hiprandDestroyGenerator(gen);
+    hipFree(x);
+}

Copied: rocrand/repos/community-testing-x86_64/test.sh (from rev 1370829, 
rocrand/trunk/test.sh)
===================================================================
--- community-testing-x86_64/test.sh                            (rev 0)
+++ community-testing-x86_64/test.sh    2022-12-28 13:21:41 UTC (rev 1370830)
@@ -0,0 +1,5 @@
+#! /usr/bin/env sh
+
+OUT=$(mktemp -d)
+/opt/rocm/bin/hipcc -o "$OUT"/test test.cpp -lhiprand -lrocrand
+"$OUT"/test

Reply via email to