I have not tried running these specific benchmarks in gem5 personally, so I
cannot say for certain what the error is or even if they are expected to
run to completion in gem5.  But, normally the error you're seeing happens
because you have not created the appropriate "cache" files for the GPU
kernel(s) the program is trying to run.  MIOpen first checks to see if the
desired kernel has been run on your machine before, and if not it tries to
do online compilation of that kernel.  Unfortunately online compilation of
kernels in gem5 is a) very slow and b), because it is very slow, not
supported in gem5 (basically, it is so slow as to not be worth supporting
in many cases, in my opinion).  So, instead, the expectation is that we
build the kernels we want ahead of time, before running the program.  You
may have seen in the examples we provide for DNNMark (
https://resources.gem5.org/resources/dnn-mark) that we have this "generate
cachefiles" script -- that is exactly what the purpose of that script is.
Moreover, on the same webpage, you may have noticed we include the path to
that cache directory in our docker commands (emphasis mine):

docker run --rm -v ${PWD}:${PWD} -v
*${PWD}/gem5-resources/src/gpu/DNNMark/cachefiles:/root/.cache/miopen/2.9.0*
-w ${PWD} gcr.io/gem5-test/gcn-gpu:v22-1 gem5/build/GCN3_X86/gem5.opt
gem5/configs/example/apu_se.py -n3
--benchmark-root=gem5-resources/src/gpu/DNNMark/build/benchmarks/test_fwd_softmax
-cdnnmark_test_fwd_softmax --options="-config
gem5-resources/src/gpu/DNNMark/config_example/softmax_config.dnnmark
-mmap gem5-resources/src/gpu/DNNMark/mmap.bin"

>From looking at your commands, I don't see you including this.  Thus, while
I do not know if that script by default produces the kernels needed for,
say, AlexNet, I strongly suspect you should start by running that script
and updating your docker commands to include the cache stuff ... then see
what happens from there.

Sidenote: normally when I see this:

MIOpen(HIP): Warning [ParseAndLoadDb] File is unreadable:
/opt/rocm-4.0.1/miopen/share/miopen/db/gfx801_4.HIP.fdb.txt

It means that the files MIOpen is expecting are not setup properly.
Normally I just symlink these extra files -- e.g., symlink gfx801_4... from
gfx801_32 ... (this is not the best performing, option because the
resources are different, but provides a basic setup step to avoid problems
like this).
Matt

On Thu, May 11, 2023 at 10:02 PM 429442672 via gem5-dev <gem5-dev@gem5.org>
wrote:

> Dear Matt,
>      When i run the benchmarks: dnnmark_test_VGG, dnnmark_test_alexnet,
> dnnmark_test_fwd_conv, and i got the same error like this (get Invalid
> filter channel number):
>
> build/GCN3_X86/sim/syscall_emul.cc:74: warn: ignoring syscall
> fdatasync(...)
> build/GCN3_X86/sim/syscall_emul.cc:74: warn: ignoring syscall
> fdatasync(...)
> build/GCN3_X86/sim/syscall_emul.cc:74: warn: ignoring syscall
> fdatasync(...)
> build/GCN3_X86/sim/syscall_emul.cc:74: warn: ignoring syscall
> fdatasync(...)
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> MIOpen(HIP): Warning [ParseAndLoadDb] File is unreadable:
> /opt/rocm-4.0.1/miopen/share/miopen/db/gfx801_4.HIP.fdb.txt
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> MIOpen Error: /root/driver/MLOpen/src/ocl/convolutionocl.cpp:150: Invalid
> filter channel number
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> build/GCN3_X86/sim/syscall_emul.cc:683: warn: fcntl: unsupported command 6
> MIOpen Error: /root/driver/MLOpen/src/ocl/convolutionocl.cpp:150: Invalid
> filter channel number
> MIOpen Error: 3 at
> /home/tang/gem5-resources/src/gpu/DNNMark/core/include/dnn_utility.h1057Ticks:
> 327510244000
> Exiting because exiting with last active thread context
>
>
> My command line is:
>
> gem5/build/GCN3_X86/gem5.opt gem5/configs/example/apu_se.py
> -n 8 --mem-size=12GB
> --benchmark-root=gem5-resources/src/gpu/DNNMark/build/benchmarks/test_fwd_conv
> -c dnnmark_test_fwd_conv
> --options="-config
> gem5-resources/src/gpu/DNNMark/config_example/conv_config.dnnmark -mmap
> gem5-resources/src/gpu/DNNMark/mmap.bin"
>
> and i didn't change the setup of the default setup of conv_config.dnnmark
> and gfx801
>
> May i ask, did i do something wrong here?
> Have you ever test those benchmark without error, and could you please
> show me several your configurations?
>
> Thank you so much!
>
>
>
> _______________________________________________
> gem5-dev mailing list -- gem5-dev@gem5.org
> To unsubscribe send an email to gem5-dev-le...@gem5.org
>
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org

Reply via email to