ROCm / HIP

HIP: C++ Heterogeneous-Compute Interface for Portability
https://rocmdocs.amd.com/projects/HIP/
MIT License
3.76k stars 538 forks source link

[Issue]: Cannot port with https://rocmdocs.amd.com/projects/HIP/en/latest/user_guide/hip_porting_guide.html #3437

Open CrimsonDump opened 7 months ago

CrimsonDump commented 7 months ago

Problem Description

Cannot port with https://rocmdocs.amd.com/projects/HIP/en/latest/user_guide/hip_porting_guide.html. hipXXX scripts don't work.

/usr/bin/hipexamine-perl.sh: line 13: /opt/rocm-6.0.2/bin/../../libexec/hipify/findcode.sh: No such file or directory

If I fix this and run hipexamine-perl.sh --help, it still outputs a mess

Unknown option: and Unknown option: not Unknown option: a Unknown option: and Unknown option: or ...........

Operating System

Ubuntu 20.04.6 LTS (Focal Fossa)

CPU

Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz

GPU

AMD Instinct MI210

ROCm Version

ROCm 6.0.0

ROCm Component

No response

Steps to Reproduce

Run a container from https://hub.docker.com/r/rocm/dev-ubuntu-20.04 Run amdgpu-install to install ROCm Run hipexamine-perl.sh --help /usr/bin/hipexamine-perl.sh: line 13: /opt/rocm-6.0.2/bin/../../libexec/hipify/findcode.sh: No such file or directory

If I fix this and run hipexamine-perl.sh --help, it still outputs a mess

Unknown option: and Unknown option: not Unknown option: a Unknown option: and Unknown option: or ...........

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

ROCk module is loaded =====================
HSA System Attributes
=====================
Runtime Version: 1.1 System Timestamp Freq.: 1000.000000MHz Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count) Machine Model: LARGE
System Endianness: LITTLE
Mwaitx: DISABLED DMAbuf Support: NO

==========
HSA Agents
==========


Agent 1


Name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz Uuid: CPU-XX
Marketing Name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz Vendor Name: CPU
Feature: None specified
Profile: FULL_PROFILE
Float Round Mode: NEAR
Max Queue Number: 0(0x0)
Queue Min Size: 0(0x0)
Queue Max Size: 0(0x0)
Queue Type: MULTI
Node: 0
Device Type: CPU
Cache Info:
L1: 32768(0x8000) KB
Chip ID: 0(0x0)
ASIC Revision: 0(0x0)
Cacheline Size: 64(0x40)
Max Clock Freq. (MHz): 3100
BDFID: 0
Internal Node ID: 0
Compute Unit: 96
SIMDs per CU: 0
Shader Engines: 0
Shader Arrs. per Eng.: 0
WatchPts on Addr. Ranges:1
Features: None Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: FINE GRAINED
Size: 527833668(0x1f761a44) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 2
Segment: GLOBAL; FLAGS: KERNARG, FINE GRAINED Size: 527833668(0x1f761a44) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 3
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 527833668(0x1f761a44) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
ISA Info:


Agent 2


Name: gfx90a
Uuid: GPU-339c2827415fda95
Marketing Name: AMD Instinct MI210
Vendor Name: AMD
Feature: KERNEL_DISPATCH
Profile: BASE_PROFILE
Float Round Mode: NEAR
Max Queue Number: 128(0x80)
Queue Min Size: 64(0x40)
Queue Max Size: 131072(0x20000)
Queue Type: MULTI
Node: 1
Device Type: GPU
Cache Info:
L1: 16(0x10) KB
L2: 8192(0x2000) KB
Chip ID: 29711(0x740f)
ASIC Revision: 1(0x1)
Cacheline Size: 64(0x40)
Max Clock Freq. (MHz): 1700
BDFID: 24576
Internal Node ID: 1
Compute Unit: 104
SIMDs per CU: 4
Shader Engines: 8
Shader Arrs. per Eng.: 1
WatchPts on Addr. Ranges:4
Coherent Host Access: FALSE
Features: KERNEL_DISPATCH Fast F16 Operation: TRUE
Wavefront Size: 64(0x40)
Workgroup Max Size: 1024(0x400)
Workgroup Max Size per Dimension: x 1024(0x400)
y 1024(0x400)
z 1024(0x400)
Max Waves Per CU: 32(0x20)
Max Work-item Per CU: 2048(0x800)
Grid Max Size: 4294967295(0xffffffff)
Grid Max Size per Dimension: x 4294967295(0xffffffff)
y 4294967295(0xffffffff)
z 4294967295(0xffffffff)
Max fbarriers/Workgrp: 32
Packet Processor uCode:: 55
SDMA engine uCode:: 8
IOMMU Support:: None
Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 67092480(0x3ffc000) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: FALSE
Pool 2
Segment: GLOBAL; FLAGS: EXTENDED FINE GRAINED Size: 67092480(0x3ffc000) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: FALSE
Pool 3
Segment: GROUP
Size: 64(0x40) KB
Allocatable: FALSE
Alloc Granule: 0KB
Alloc Alignment: 0KB
Accessible by all: FALSE
ISA Info:
ISA 1
Name: amdgcn-amd-amdhsa--gfx90a:sramecc+:xnack- Machine Models: HSA_MACHINE_MODEL_LARGE
Profiles: HSA_PROFILE_BASE
Default Rounding Mode: NEAR
Default Rounding Mode: NEAR
Fast f16: TRUE
Workgroup Max Size: 1024(0x400)
Workgroup Max Size per Dimension: x 1024(0x400)
y 1024(0x400)
z 1024(0x400)
Grid Max Size: 4294967295(0xffffffff)
Grid Max Size per Dimension: x 4294967295(0xffffffff)
y 4294967295(0xffffffff)
z 4294967295(0xffffffff)
FBarrier Max Size: 32
Done

Additional Information

No response

harkgill-amd commented 1 month ago

Hi @CrimsonDump, could you try running hipexamine-perl.sh from the ROCm 22.04 Ubuntu container found here? Please note that this docker image comes with ROCm 6.2.1 pre-installed and you should be able to run the command once the container is launched. I was able to run the script following #usage : hipexamine-perl.sh DIRNAME with it detecting the files in my current directory with cuda code inside them.

root@2bb6819efef0:~# hipexamine-perl.sh

[HIPIFY] info: file './cuda-samples/Samples/0_Introduction/vectorAdd/vectorAdd.cu' statistics:
  CONVERTED refs count: 37
  TOTAL lines of code: 210
  WARNINGS: 0
[HIPIFY] info: CONVERTED refs by names:

I did also see the same error you reported when trying the --help command though I'm not sure that's a legitimate flag. Will double check and confirm.