ROCm / MIVisionX

MIVisionX toolkit is a set of comprehensive computer vision and machine intelligence libraries, utilities, and applications bundled into a single toolkit. AMD MIVisionX also delivers a highly optimized open-source implementation of the Khronos OpenVX™ and OpenVX™ Extensions.
https://rocm.docs.amd.com/projects/MIVisionX/en/latest/
MIT License
184 stars 72 forks source link

[Issue]: LOOMSL - Error when trying tro use loom_shell on sampel-1 #1255

Closed cjolivier01 closed 4 months ago

cjolivier01 commented 6 months ago

Problem Description

OS:
NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
CPU: 
model name      : AMD Ryzen Threadripper PRO 5955WX 16-Cores
GPU:
  Name:                    AMD Ryzen Threadripper PRO 5955WX 16-Cores
  Marketing Name:          AMD Ryzen Threadripper PRO 5955WX 16-Cores
  Name:                    gfx803                             
  Marketing Name:          Radeon RX550/550 Series            
      Name:                    amdgcn-amd-amdhsa--gfx803   

When trying to run loom_shell on the first example, it simply ewrrors out without telling me what went wrong (for the most part): []loom_shell -v loomStitch-sample1.txt loom_shell 0.9.9 [loomsl 0.9.9] ... processing commands from loomStitch-sample1.txt

setGlobalAttribute(0,1); setGlobalAttribute(7,0); setGlobalAttribute(1,0); setGlobalAttribute(2,0); setGlobalAttribute(5,0); setGlobalAttribute(6,4); ls_context context; ..ls_context context[1] created context = lsCreateContext(); ..lsCreateContext: created context context[0] lsSetOutputConfig(context,VX_DF_IMAGE_RGB,3840,1920); ..lsSetOutputConfig: successful for context[0] lsSetCameraConfig(context,4,1,VX_DF_IMAGE_RGB,2048,3072*4); ..lsSetCameraConfig: successful for context[0] lsImportConfiguration(context,"pts","calibration.pts"); lsInitialize(context); ERROR: clCreateContextFromType(CL_DEVICE_TYPE_GPU) => -1 (failed) vxQueryContext of failed(-1) ERROR: OpenVX object creation failed at /home/colivier/src/MIVisionX/amd_openvx_extensions/amd_loomsl/live_stitch_api.cpp#1042 ERROR: lsInitialize(context[0]) failed (-7) @loomStitch-sample1.txt#24 ... exit from loomStitch-sample1.txt

Operating System

Ubuntu 22.04

CPU

AMD Ryzen Threadripper PRO 5955WX 16-Cores

GPU

Other

Other

Name: gfx803 Marketing Name: Radeon RX550/550 Series Name: amdgcn-amd-amdhsa--gfx803

ROCm Version

ROCm 5.7.1

ROCm Component

MIVisionX

Steps to Reproduce

just build and run the first sample for loom_shell

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

OCk 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: YES

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


Agent 1


Name: AMD Ryzen Threadripper PRO 5955WX 16-Cores Uuid: CPU-XX
Marketing Name: AMD Ryzen Threadripper PRO 5955WX 16-Cores 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): 4000
BDFID: 0
Internal Node ID: 0
Compute Unit: 32
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: 131720280(0x7d9e458) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 2
Segment: GLOBAL; FLAGS: KERNARG, FINE GRAINED Size: 131720280(0x7d9e458) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
Pool 3
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 131720280(0x7d9e458) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: TRUE
ISA Info:


Agent 2


Name: gfx803
Uuid: GPU-XX
Marketing Name: Radeon RX550/550 Series
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
Chip ID: 27039(0x699f)
ASIC Revision: 0(0x0)
Cacheline Size: 64(0x40)
Max Clock Freq. (MHz): 1183
BDFID: 8448
Internal Node ID: 1
Compute Unit: 8
SIMDs per CU: 4
Shader Engines: 2
Shader Arrs. per Eng.: 1
WatchPts on Addr. Ranges:4
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: 40(0x28)
Max Work-item Per CU: 2560(0xa00)
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:: 730
SDMA engine uCode:: 58
IOMMU Support:: None
Pool Info:
Pool 1
Segment: GLOBAL; FLAGS: COARSE GRAINED
Size: 4194304(0x400000) KB
Allocatable: TRUE
Alloc Granule: 4KB
Alloc Alignment: 4KB
Accessible by all: FALSE
Pool 2
Segment: GLOBAL; FLAGS:
Size: 4194304(0x400000) 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--gfx803
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

kiritigowda commented 6 months ago

@cjolivier01

On rocm-core - 5.6.1.50601-93~22.04, 5.7.1 should be same. Below is the steps to run it.

MIVisionX - OCL build

git clone https://github.com/ROCm/MIVisionX.git
mkdir ocl-build && cd ocl-build
cmake -D BACKEND=OCL ../MIVisionX
make -j8

Run Sample

cd ..
mkdir loom-sample-1 && cd loom-sample-1
python3 ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1-get-data.py 
../ocl-build/bin/loom_shell ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1.txt

Expected Output

Output - LoomOutputStitch.bmp.zip

get data -- python3 ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1-get-data.py

python3 ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1-get-data.py 
--2023-12-26 11:02:24--  https://www.ptgui.com/images/vigntutorial/vigntutorial.zip
Resolving www.ptgui.com (www.ptgui.com)... 104.26.13.84, 104.26.12.84, 172.67.69.27, ...
Connecting to www.ptgui.com (www.ptgui.com)|104.26.13.84|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9030131 (8.6M) [application/zip]
Saving to: ‘vigntutorial.zip’

vigntutorial.zip                         100%[================================================================================>]   8.61M  --.-KB/s    in 0.1s    

2023-12-26 11:02:24 (78.9 MB/s) - ‘vigntutorial.zip’ saved [9030131/9030131]

Archive:  vigntutorial.zip
  inflating: step1.pts               
  inflating: IMG_5268.JPG            
  inflating: step2.pts               
  inflating: step3.pts               
  inflating: IMG_5265.JPG            
  inflating: IMG_5266.JPG            
  inflating: readme.txt              
  inflating: IMG_5267.JPG            

Run Sample

../ocl-build/bin/loom_shell ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1.txt 
loom_shell 0.9.9 [loomsl 0.9.9]
... processing commands from ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1.txt
..ls_context context[1] created
..lsCreateContext: created context context[0]
..lsSetOutputConfig: successful for context[0]
..lsSetCameraConfig: successful for context[0]
OK: OpenVX using GPU device - 0: gfx906:sramecc+:xnack- [OpenCL 2.0 ] [CL_DEVICE_SVM_CAPABILITIES 0 0]
..lsInitialize: successful for context[0] (1693.403 ms)
..cl_mem mem[2] created
..cl_context opencl_context[1] created
..lsGetOpenCLContext: get OpenCL context opencl_context[0] from context[0]
OK: loaded cam00.bmp
OK: loaded cam01.bmp
OK: loaded cam02.bmp
OK: loaded cam03.bmp
..lsSetCameraBuffer: set OpenCL buffer mem[0] for context[0]
..lsSetOutputBuffer: set OpenCL buffer mem[1] for context[0]
OK: run: executed for 100 frames
OK: run: Time:   1.015 ms (min);   1.060 ms (avg);   1.137 ms (max);   1.379 ms (1st-frame) of 100 frames
OK: created LoomOutputStitch.bmp
> stitch graph profile
 COUNT,tmp(ms),avg(ms),min(ms),max(ms),DEV,KERNEL
   101,  0.956,  0.965,  0.905,  1.320,CPU,GRAPH
   101,  0.950,  0.959,  0.901,  1.315,GPU,com.amd.loomsl.warp
   101,  0.944,  0.950,  0.893,  1.212,GPU,com.amd.loomsl.merge
..lsReleaseContext: released context context[0]
... exit from ../MIVisionX/samples/loom_360_stitch/sample-1/loomStitch-sample1.txt
cjolivier01 commented 6 months ago

yes, thank you. I did all of that. It errors out:

lsInitialize(context); ERROR: clCreateContextFromType(CL_DEVICE_TYPE_GPU) => -1 (failed) vxQueryContext of failed(-1) ERROR: OpenVX object creation failed at /home/colivier/src/MIVisionX/amd_openvx_extensions/amd_loomsl/live_stitch_api.cpp#1042 ERROR: lsInitialize(context[0]) failed (-7) @loomStitch-sample1.txt#24 ... exit from loomStitch-sample1.txt

kiritigowda commented 6 months ago

@cjolivier01 - I can try on ROCm 5.7.1 , but I do not have gfx803 to try on. But here is a list of supported GPUs - https://rocm.docs.amd.com/en/docs-5.5.1/release/gpu_os_support.html#linux-supported-gpus

kiritigowda commented 6 months ago

@cjolivier01 updated GPU support list - https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html

kiritigowda commented 4 months ago

Hi @cjolivier01 just wanted to check if you were able to find a supported hardware to try the sample? I am going to close this issue as it is hardware related. You can also try the windows OpenCL backend with your gfx803. Please reopen the issue if you need help with anything.

cjolivier01 commented 4 months ago

switched to using an nvidia gpu

On Sun, Feb 18, 2024 at 8:39 AM Kiriti Gowda @.***> wrote:

Hi @cjolivier01 https://github.com/cjolivier01 just wanted to check if you were able to find a supported hardware to try the sample? I am going to close this issue as it is hardware related. You can also try the windows OpenCL backend with your gfx803. Please reopen the issue if you need help with anything.

— Reply to this email directly, view it on GitHub https://github.com/ROCm/MIVisionX/issues/1255#issuecomment-1951363473, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACVWZ7NH67KT5XZS26LYEPLYUIOETAVCNFSM6AAAAABBDQUSKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJRGM3DGNBXGM . You are receiving this because you were mentioned.Message ID: @.***>