Hi Javad,

tl;dr: I don't believe anyone has publicly announced Caffe running
end-to-end in gem5, but I have gotten hipCaffe to run for parts of
applications in the past.

A couple years ago I started working on getting hipCaffe (the HIP version
of Caffe -- HIP is the current GPU programming language used by AMD)
working in gem5.  I used this version in part because NVIDIA GPUs aren't
supported directly in gem5 at the moment (AMD GPUs are), and because I was
interested in running Caffe workloads that used the GPU.  So, long story
short, I don't know if Caffe would "just work" if you wanted to run it in
gem5 only on CPUs or not.  You would need to try this and let us know.

But, in terms of running hipCaffe on the AMD GPU in gem5, I never got it
completely working, but there were certain applications (like CaffeNet) in
it that I could get to run for about 10 GPU kernels or so.  At that point,
I started running into a range of bugs that needed to be fixed -- some
requiring new syscalls to be implemented in SE mode, some requiring various
corner case instructions or sub-cases of instructions to be implemented,
etc.  So, hipCaffe "worked" in the sense that I could run some stuff on
gem5, but it did not work in the sense that I could run an application
end-to-end.  Unfortunately, I never got back to finishing fixing it -- in
part because running hipCaffe in SE mode was an endless series of new bugs
or system features that needed implementing.  My hope is that once the FS
mode support for GPUs is working, that it will make getting workloads like
this running for the GPU model.  Practically speaking (ignoring the bugs),
I think this is necessary anyways, because Caffe runs so many kernels,
simulating all of them will take a really long time.  So we'd want some
support for fast-forwarding and checkpointing, which (I think) is better
supported in FS mode.

If you are interested in trying to run hipCaffe anyways though, my
recommendation would be to start from the GPU documentation and especially
the docker file in public gem5, which installs the version of ROCm and most
of the libraries you'll need on top of it.  From there, you would need to
update the docker to install a version of hipCaffe (
https://github.com/ROCmSoftwarePlatform/hipCaffe/) that is compatible with
ROCm 1.6, as well as install any additional libraries hipCaffe needs that
are not already installed as part of the default gem5 GPU docker.  From
there you would likely be able to get to the same point as me -- getting
some of the kernels to run before a failure happens.

Thanks,
Matt

On Thu, Jan 21, 2021 at 9:36 PM Javad Mozaffari via gem5-users <
gem5-users@gem5.org> wrote:

> Hello,
> i want to run caffe in gem5 but i'm new to gem5, where can i learn about
> this???
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to