[gem5-users] RENAME: HELP Needed for Running Benchmarks in GPU Full System Simulation

2023-12-23 Thread 关富润 via gem5-users
Dear all,
I am currently engaged in GPU full system simulation using gem5 and am at a 
stage where I seek to run benchmark suites, specifically Rodinia and PolyBench. 
 I have observed that both of these benchmark suites support compilation for 
OpenCL architecture, and I have a few questions regarding the compilation and 
execution process within the gem5 environment.  Compilation Framework: Should I 
compile these benchmarks under the OpenCL framework? Is this the recommended 
approach for compatibility with the gem5 GPU full system simulation? 


Utilizing ROCm in gem5: I noticed that the ROCm installed in the gpu-fs docker 
image includes OpenCL compilation tools. Is it feasible to directly compile 
these benchmarks within this environment? Are there any specific considerations 
or steps that I should be aware of? Guidance and Documentation: Would anyone be 
able to provide guidance or point me towards documentation on how to properly 
set up and execute these benchmarks in the gem5 GPU full system simulation 
context? 
 


Thank you in advance for your time and assistance. I look forward to any 
suggestions or guidance you can offer.



Best regards,

Sandy.___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Fail to run gpu-fs

2023-12-23 Thread 关富润 via gem5-users
Dear all,
I am currently engaged in GPU full system simulation using gem5 and am at a 
stage where I seek to run benchmark suites, specifically Rodinia and PolyBench. 
 I have observed that both of these benchmark suites support compilation for 
OpenCL architecture, and I have a few questions regarding the compilation and 
execution process within the gem5 environment.  Compilation Framework: Should I 
compile these benchmarks under the OpenCL framework? Is this the recommended 
approach for compatibility with the gem5 GPU full system simulation? 


Utilizing ROCm in gem5: I noticed that the ROCm installed in the gpu-fs docker 
image includes OpenCL compilation tools. Is it feasible to directly compile 
these benchmarks within this environment? Are there any specific considerations 
or steps that I should be aware of? Guidance and Documentation: Would anyone be 
able to provide guidance or point me towards documentation on how to properly 
set up and execute these benchmarks in the gem5 GPU full system simulation 
context? 
 


Thank you in advance for your time and assistance. I look forward to any 
suggestions or guidance you can offer.



Best regards,

Sandy.___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Login fails once the system boots -- full system simulation (arm)

2023-12-23 Thread Hoa Nguyen via gem5-users
Hi Saras,

This is the methodology we used for most gem5-resources disk images
regarding automating the login process right after booting Ubuntu.

We have a systemd service file that will log you in as a root user.
https://github.com/gem5/gem5-resources/blob/stable/src/arm-ubuntu/disk-image/shared/serial-getty%40.service

You'll need to copy this file to `/lib/systemd/system/` folder. After that,
you can run the gem5 simulation again. The expectation is that the guest
system will automatically login as a root user after booting.

More details on generating arm disk images can be found here,
https://github.com/gem5/gem5-resources/tree/stable/src/arm-ubuntu.

Regards,
Hoa Nguyen

On Sat, Dec 23, 2023, 17:55 saras nanda via gem5-users 
wrote:

> i am doing a full system simulation for arm arch , Fs.py and I am unable
> to login once the system boots ,I don't know what Is the problem .
>
> These are the steps I followed while creating the image on qemu
>
> Install the dependecies
>
> sudo apt install qemu-system-arm qemu-system-mips qemu-efi-aarch64
> qemu-kvm qemu-efi cloud-image-utils
>
>
> Prepare the EFI partition
>
> dd if=/dev/zero of=flash0.img bs=1M count=64
>
> dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=flash0.img conv=notrunc
>
> dd if=/dev/zero of=flash1.img bs=1M count=64
>
> credentials for the user
>
> cat >user-data <
> #cloud-config
>
> password: thepassword
>
> chpasswd: { expire: False }
>
> ssh_pwauth: True
>
> EOF
>
> cloud-localds user-data.img user-data
>
> then i booted this image on gem5
> the below is the log from m5 terminal
> please let me know if i can rectify this login methodology  so that i can
> check point the system
>  m5 terminal: Terminal 0 
> [0.00] Booting Linux on physical CPU 0x00 [0x410fd070]
> [0.00] Linux version 4.18.0+ (arm-employee@arm-computer) (gcc
> version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #1 SMP PREEMPT Wed
> Nov 6 14:10:00 GMT 2019
> [0.00] Machine model: V2P-CA15
> [0.00] Memory limited to 512MB
> [0.00] cma: Reserved 16 MiB at 0x9f00
> [0.00] On node 0 totalpages: 131072
> [0.00]   DMA32 zone: 2048 pages used for memmap
> [0.00]   DMA32 zone: 0 pages reserved
> [0.00]   DMA32 zone: 131072 pages, LIFO batch:31
> [0.00] random: get_random_bytes called from
> start_kernel+0xa8/0x3e8 with crng_init=0
> [0.00] percpu: Embedded 23 pages/cpu @(ptrval) s53976
> r8192 d32040 u94208
> [0.00] pcpu-alloc: s53976 r8192 d32040 u94208 alloc=23*4096
> [0.00] pcpu-alloc: [0] 0
> [0.00] Detected PIPT I-cache on CPU0
> [0.00] CPU features: enabling workaround for ARM erratum 832075
> [0.00] CPU features: enabling workaround for ARM erratum 834220
> [0.00] CPU features: enabling workaround for EL2 vector hardening
> [0.00] CPU features: detected: Kernel page table isolation (KPTI)
> [0.00] Built 1 zonelists, mobility grouping on.  Total pages:
> 129024
> [0.00] Kernel command line: earlyprintk=pl011,0x1c09
> console=ttyAMA0 lpj=19988480 norandmaps rw loglevel=8 mem=512MB
> root=/dev/sda1
> [0.00] Dentry cache hash table entries: 65536 (order: 7, 524288
> bytes)
> [0.00] Inode-cache hash table entries: 32768 (order: 6, 262144
> bytes)
> [0.00] Memory: 480148K/524288K available (6910K kernel code, 452K
> rwdata, 2312K rodata, 448K init, 217K bss, 27756K reserved, 16384K
> cma-reserved)
> [0.00] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> [0.00] Preemptible hierarchical RCU implementation.
> [0.00] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=1.
> [0.00] Tasks RCU enabled.
> [0.00] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
> [0.00] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
> [0.00] GIC: GICv2 detected, but range too small and
> irqchip.gicv2_force_probe not set
> [0.00] clk_gem5_energy_ctrl: No cpu-map in DT! Falling back to old
> detection method!
> [0.00] clk_gem5_energy_ctrl: No clusters in DT! Falling back to
> using CPU topology!
> [0.01] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every
> 89478484971ns
> [0.82] arch_timer: Unable to find a suitable frame in timer @
> 0x2a81
> [0.85] Failed to initialize '/timer@2a81': -22
> [0.000136] Console: colour dummy device 80x25
> [0.000140] Calibrating delay loop (skipped) preset value.. 9994.24
> BogoMIPS (lpj=19988480)
> [0.000145] pid_max: default: 32768 minimum: 301
> [0.000179] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
> [0.000183] Mountpoint-cache hash table entries: 1024 (order: 1, 8192
> bytes)
> [0.024069] ASID allocator initialised with 128 entries
> [0.032070] Hierarchical SRCU implementation.
> [0.048080] smp: Bringing up secondary CPUs ...
> [0.048084] smp: Brought up 1 

[gem5-users] Login fails once the system boots -- full system simulation (arm)

2023-12-23 Thread saras nanda via gem5-users
i am doing a full system simulation for arm arch , Fs.py and I am unable to
login once the system boots ,I don't know what Is the problem .

These are the steps I followed while creating the image on qemu

Install the dependecies

sudo apt install qemu-system-arm qemu-system-mips qemu-efi-aarch64 qemu-kvm
qemu-efi cloud-image-utils


Prepare the EFI partition

dd if=/dev/zero of=flash0.img bs=1M count=64

dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=flash0.img conv=notrunc

dd if=/dev/zero of=flash1.img bs=1M count=64

credentials for the user

cat >user-data <
[0.148290] PTP clock support registered
[0.152247] NET: Registered protocol family 2
[0.152403] tcp_listen_portaddr_hash hash table entries: 256 (order: 0,
4096 bytes)
[0.152412] TCP established hash table entries: 4096 (order: 3, 32768
bytes)
[0.152439] TCP bind hash table entries: 4096 (order: 4, 65536 bytes)
[0.152467] TCP: Hash tables configured (established 4096 bind 4096)
[0.152484] UDP hash table entries: 256 (order: 1, 8192 bytes)
[0.152493] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[0.152529] NET: Registered protocol family 1
[0.164309] RPC: Registered named UNIX socket transport module.
[0.164313] RPC: Registered udp transport module.
[0.164318] RPC: Registered tcp transport module.
[0.164322] RPC: Registered tcp NFSv4.1 backchannel transport module.
[0.164328] PCI: CLS 0 bytes, default 64
[0.164507] kvm [1]: SVE system without VHE unsupported.  Broken cpu?
[0.164866] workingset: timestamp_bits=62 max_order=17 bucket_order=0
[0.167257] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[0.169692] fuse init (API version 7.27)
[0.170180] io scheduler noop registered
[0.170253] io scheduler cfq registered (default)
[0.170258] io scheduler mq-deadline registered
[0.170263] io scheduler kyber registered
[0.170292] atomic64_test: passed
[0.170659] pci-host-generic 3000.pci: host bridge /pci ranges:
[0.170666] pci-host-generic 3000.pci:   No bus range found for
/pci, using [bus 00-ff]
[0.170673] pci-host-generic 3000.pci: Parsing ranges property...
[0.170682] pci-host-generic 3000.pci:IO 0x2f00..0x2f00
-> 0x
[0.170692] pci-host-generic 3000.pci:   MEM 0x4000..0x7fff
-> 0x
[0.170711] pci-host-generic 3000.pci: ECAM at [mem
0x3000-0x3fff] for [bus 00-ff]
[0.170771] pci-host-generic 3000.pci: PCI host bridge to bus :00
[0.170778] pci_bus :00: root bus resource [bus 00-ff]
[0.170785] pci_bus :00: root bus resource [io  0x-0x]
[0.170792] pci_bus :00: root bus resource [mem
0x4000-0x7fff] (bus address [0x-0x3fff])
[0.170799] pci_bus :00: scanning bus
[0.170816] pci :00:01.0: [8086:7111] type 00 class 0x010185
[0.170825] pci :00:01.0: reg 0x10: [io  0x-0x0007]
[0.170833] pci :00:01.0: reg 0x14: [io  0x-0x0003]
[0.170840] pci :00:01.0: reg 0x18: [io  0x-0x0007]
[0.170847] pci :00:01.0: reg 0x1c: [io  0x-0x0003]
[0.170855] pci :00:01.0: reg 0x20: [io  0x-0x000f]
[0.170863] pci :00:01.0: reg 0x30: [mem 0x4000-0x47ff pref]
[0.171146] pci_bus :00: fixups for bus
[0.171151] pci_bus :00: bus scan returning with max=00
[0.171159] pci :00:01.0: BAR 6: assigned [mem 0x4000-0x47ff
pref]
[0.171166] pci :00:01.0: BAR 4: assigned [io  0x1000-0x100f]
[0.171174] pci :00:01.0: BAR 0: assigned [io  0x1010-0x1017]
[0.171181] pci :00:01.0: BAR 2: assigned [io  0x1018-0x101f]
[0.171188] pci :00:01.0: BAR 1: assigned [io  0x1020-0x1023]
[0.171196] pci :00:01.0: BAR 3: assigned [io  0x1024-0x1027]
[0.172806] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[0.180408] ata_piix :00:01.0: assign IRQ: got 23
[0.180414] ata_piix :00:01.0: version 2.13
[0.180421] ata_piix :00:01.0: enabling device ( -> 0001)
[0.180442] ata_piix :00:01.0: enabling bus mastering
[0.184163] scsi host0: ata_piix
[0.188164] scsi host1: ata_piix
[0.188219] ata1: PATA max UDMA/33 cmd 0x1010 ctl 0x1020 bmdma 0x1000
irq 23
[0.188225] ata2: PATA max UDMA/33 cmd 0x1018 ctl 0x1024 bmdma 0x1008
irq 23
[0.188409] libphy: Fixed MDIO Bus: probed
[0.188425] e1000: Intel(R) PRO/1000 Network Driver - version
7.3.21-k8-NAPI
[0.188430] e1000: Copyright (c) 1999-2006 Intel Corporation.
[0.188450] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[0.188455] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[0.188475] igb: Intel(R) Gigabit Ethernet Network Driver - version
5.4.0-k
[0.188480] igb: Copyright (c) 2007-2014 Intel Corporation.
[0.188500] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver -
version 5.1.0-k
[0.188505] ixgbe: Copyright (c) 1999-2016 Intel Corporation.
[0.192184] ixgbevf: Int

[gem5-users] Help with extending RISCV vector ISA

2023-12-23 Thread zahra butool via gem5-users
Hi everyone,


For my project, I need to add a custom instruction to RISCV in Gem5 that
loads 2 sets of 128 elements (32-bit float) from the memory, computes the
dot product, and stores them back to the memory. A starting point is using
the RISCV vector instructions, but I want to reduce the instruction count
and have only one instruction doing all these operations. So I was checking
the vector .isa (decoder, memory, arith) files to get an idea of how to
merge vle32, vadd_vv, vredsum.vs, and vse32 into a single instruction, but
it looks a bit complicated to me and still couldn't figure out how I should
modify it.

I would appreciate it if anyone could give me some pointers on starting
this or which files I need to check and modify.

Thank you!
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org


[gem5-users] Re: Can CloudSuite Run on FullSystem Simulation

2023-12-23 Thread Abdelrahman S. Hussein via gem5-users
Hi Jason,

Thank you so much!

It is good to know that gem5 can run CloudSuite, given all the
configurations are set properly. However, I guess I am facing a problem
with running Docker on the simulated image. I installed Docker on the image
through QEMU and I am sure it works fine. However, when I try to boot the
image in gem5, the bootloader fails to start the Docker service:

I tried booting with AtomicSimple CPU and it gave the following failures
(at the end of the email). I also tried to boot using KVM and it also gave
the same failures below.

The simulation specifications:

   - ISA: X86
   - Kernel: Vmlinux-5.4.49
   - Gem5 Version: V23.0.1
   - OS on the Image: Ubunutu 18.04
   - Host OS:  Ubuntu 20.04.1 LTS
   - Config: fs.py (I understand it is deprecated but I am just seeking any
   helpful insight)

I tried to check the journalctl and systemctl after booting on gem5 but the
log is truncated and does not print each line till the end on either
telnel or the system.pc.com_1 file. However, it gives me that the status is
failure.

I am not sure where to begin debugging this. Is there a certain
configuration I need to setup to enable the Docker service on gem5?

I get the following errors:

[  OK  ] Started irqbalance daemon.
[  OK  ] Started System Logging Service.
[  OK  ] Started Permit User Sessions.
 Starting Terminate Plymouth Boot Screen...
 Starting Hold until boot process finishes up...
[FAILED] Failed to start Accounts Service.
See 'systemctl status accounts-daemon.service' for details.
[  OK  ] Started Terminate Plymouth Boot Screen.
[  OK  ] Started Hold until boot process finishes up.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Started LSB: Record successful boot for GRUB.
 Starting Set console scheme...
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Set console scheme.
[  OK  ] Created slice system-getty.slice.
[  OK  ] Started Getty on tty1.
[  OK  ] Reached target Login Prompts.
[FAILED] Failed to start Dispatcher daemon for systemd-networkd.
See 'systemctl status networkd-dispatcher.service' for details.
[FAILED] Failed to start containerd container runtime.
See 'systemctl status containerd.service' for details.
 Starting Docker Application Container Engine...
[FAILED] Failed to start Docker Application Container Engine.
See 'systemctl status docker.service' for details.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
[  OK  ] Started Stop ureadahead data collection 45s after completed
startup.

Thanks,

--

*Best,Abdelrahman Hussein*



On Thu, Dec 21, 2023 at 8:13 AM Jason Lowe-Power 
wrote:

> Hello,
>
> Note: the output below is from the gem5-GPT. If you have chatGPT Plus you
> can access this GPT/bot at https://chat.openai.com/g/g-o3y1y4t8J-gem5-gpt.
> I've made some inline comments as well.
>
> Hello!
>
> Regarding your queries about running CloudSuite on gem5 in Full System
> (FS) mode with x86 ISA:
>
> ### Q1: Simulating CloudSuite in Full System Simulation
>
> Yes, gem5 can simulate the CloudSuite benchmark suite in Full System
> simulation mode. Here's what you need to know:
>
> - **Full System (FS) Simulation**: In FS mode, gem5 simulates an entire
> machine including the processor, memory system, and I/O devices. This mode
> is more comprehensive and suitable for complex benchmarks like CloudSuite.
>
> - **x86 ISA Support**: gem5 supports various ISAs, including x86. Ensure
> you have the correct configuration for x86 to accurately simulate the
> environment CloudSuite expects.
>
> - **Benchmark Compatibility**: CloudSuite, being a collection of
> applications designed to mimic cloud computing workloads, should be
> compatible with gem5's FS mode. However, the complexity of these benchmarks
> might require specific configurations in gem5, especially regarding the
> system's memory, network, and I/O setups.
>
> - **Preparation**: You'll need to prepare disk images with the CloudSuite
> software installed. This step is crucial as gem5 simulates from the booting
> of an OS. Ensure your disk image has everything needed for CloudSuite to
> run.
>
> ### Q2: Using Docker in Simulated System in FS Mode
>
> Running Docker inside a simulated system in gem5's FS mode presents
> additional complexity:
>
> - **Feasibility**: Technically, it's feasible to run Docker inside gem5's
> FS mode as long as the simulated system meets Docker's requirements. This
> includes kernel compatibility, necessary kernel modules, and sufficient
> system resources.
>
> - **Performance Considerations**: Be aware that running Docker, which adds
> additional layers of abstraction and resource requirements, might
> significantly slow down the simulation. gem5 models systems at a very
> detailed level, and the added complexity of Docker containers could impact
> performance. [Editor's note: Running your app in docker shouldn't slow the
> simulation down much if at all]
>
> - **Configuration and Limitations**: Ensure