[Bug 2209759] Review Request: rocclr - ROCm Compute Language Runtime

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2209759



--- Comment #5 from Philipp K. <philipp-dev@xxxxxxxxxxxxx> ---
With the device libs stuff out of the way, I used to and with your new version
still have problems with <math.h> not being found. This is mostly due to hipcc
doing -isystem /usr/include to early, which breaks the #include_next logic of
libstdc++. There are also a lot of paths to fix in hipcc and hipconfig.

A modernized patch of these issues would look sth like this

>From ba9778102dc7d3ae6268b3ad0c4e8c165d44e153 Mon Sep 17 00:00:00 2001
From: Philipp Knechtges <philipp-dev@xxxxxxxxxxxxx>
Date: Mon, 29 May 2023 07:50:05 +0200
Subject: [PATCH] fixing some paths and avoid math.h not being found

---
 bin/hipcc.pl   | 22 ++++++++++++----------
 bin/hipvars.pm |  4 ++--
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/bin/hipcc.pl b/bin/hipcc.pl
index 2cd37529..49a5755f 100644
--- a/bin/hipcc.pl
+++ b/bin/hipcc.pl
@@ -131,6 +131,9 @@ $ROCM_PATH      =   $hipvars::ROCM_PATH;
 $HIP_VERSION    =   $hipvars::HIP_VERSION;
 $HIP_ROCCLR_HOME =   $hipvars::HIP_ROCCLR_HOME;

+$CLANG_RESOURCE_DIR = `$HIP_CLANG_PATH/$HIP_COMPILER --print-resource-dir`;
+chomp($CLANG_RESOURCE_DIR);
+
 if ($HIP_PLATFORM eq "amd") {
   # If using ROCclr runtime, need to find HIP_ROCCLR_HOME
   if (!defined $DEVICE_LIB_PATH and -e "$HIP_ROCCLR_HOME/lib/bitcode") {
@@ -138,7 +141,7 @@ if ($HIP_PLATFORM eq "amd") {
   }
   $HIP_INCLUDE_PATH = "$HIP_ROCCLR_HOME/include";
   if (!defined $HIP_LIB_PATH) {
-    $HIP_LIB_PATH = "$HIP_ROCCLR_HOME/lib";
+    $HIP_LIB_PATH = "$HIP_ROCCLR_HOME/lib64";
   }

   if (!defined $DEVICE_LIB_PATH) {
@@ -146,9 +149,7 @@ if ($HIP_PLATFORM eq "amd") {
       $DEVICE_LIB_PATH = "$ROCM_PATH/amdgcn/bitcode";
     }
     else {
-      # This path is to support an older build of the device library
-      # TODO: To be removed in the future.
-      $DEVICE_LIB_PATH = "$ROCM_PATH/lib";
+      $DEVICE_LIB_PATH = "$CLANG_RESOURCE_DIR/amdgcn/bitcode";
     }
   }
 }
@@ -194,7 +195,7 @@ if ($HIP_PLATFORM eq "amd") {
         $HIP_INCLUDE_PATH = "$HIP_PATH/include";
     }
     if (! defined $HIP_LIB_PATH) {
-        $HIP_LIB_PATH = "$HIP_PATH/lib";
+        $HIP_LIB_PATH = "$HIP_PATH/lib64";
     }
     if ($verbose & 0x2) {
         print ("ROCM_PATH=$ROCM_PATH\n");
@@ -231,9 +232,10 @@ if ($HIP_PLATFORM eq "amd") {
     exit (-1);
 }

-# Add paths to common HIP includes:
-$HIPCXXFLAGS .= " -isystem \"$HIP_INCLUDE_PATH\"" ;
-$HIPCFLAGS .= " -isystem \"$HIP_INCLUDE_PATH\"" ;
+# Including /usr/include too early breaks the #include_next logic of libstdc++
+# and one gets these nice errors "'math.h' file not found"
+#$HIPCXXFLAGS .= " -isystem \"$HIP_INCLUDE_PATH\"" ;
+#$HIPCFLAGS .= " -isystem \"$HIP_INCLUDE_PATH\"" ;

 my $compileOnly = 0;
 my $needCXXFLAGS = 0;  # need to add CXX flags to compile step
@@ -583,8 +585,8 @@ if ($HIP_PLATFORM eq "amd") {
     }

     if ($hasHIP) {
-        if ($DEVICE_LIB_PATH ne "$ROCM_PATH/amdgcn/bitcode") {
-            $HIPCXXFLAGS .= " --hip-device-lib-path=\"$DEVICE_LIB_PATH\"";
+        if ($DEVICE_LIB_PATH ne "$CLANG_RESOURCE_DIR/amdgcn/bitcode") {
+            $HIPCXXFLAGS .= " --rocm-device-lib-path=\"$DEVICE_LIB_PATH\"";
         }
     }

diff --git a/bin/hipvars.pm b/bin/hipvars.pm
index c0c2eaa3..c93fd469 100644
--- a/bin/hipvars.pm
+++ b/bin/hipvars.pm
@@ -79,7 +79,7 @@ if (-e "$HIP_PATH/bin/rocm_agent_enumerator") {
 }elsif (-e "$HIP_PATH/../bin/rocm_agent_enumerator") { # case for backward
compatibility
     $ROCM_PATH=$ENV{'ROCM_PATH'} // dirname("$HIP_PATH"); # use parent
directory of HIP_PATH
 } else {
-    $ROCM_PATH=$ENV{'ROCM_PATH'} // "/opt/rocm";
+    $ROCM_PATH=$ENV{'ROCM_PATH'} // "/usr";
 }
 $CUDA_PATH=$ENV{'CUDA_PATH'} // '/usr/local/cuda';

@@ -87,7 +87,7 @@ $CUDA_PATH=$ENV{'CUDA_PATH'} // '/usr/local/cuda';
 if ($isWindows) {
     $HIP_CLANG_PATH=$ENV{'HIP_CLANG_PATH'} // "$HIP_PATH/bin";
 } else {
-    $HIP_CLANG_PATH=$ENV{'HIP_CLANG_PATH'} // "$ROCM_PATH/llvm/bin";
+    $HIP_CLANG_PATH=$ENV{'HIP_CLANG_PATH'} // "$ROCM_PATH/bin";
 }
 # HIP_ROCCLR_HOME is used by Windows builds
 $HIP_ROCCLR_HOME=$ENV{'HIP_ROCCLR_HOME'};
-- 
2.40.1

Changing this at least gets me to compile
https://github.com/ROCm-Developer-Tools/hip-tests/blob/develop/samples/0_Intro/square/square.hipref.cpp
. However, it does not run with hipMemcpy failing in line 78.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2209759
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux