[gem5-users] RENAME: HELP Needed for Running Benchmarks in GPU Full System Simulation
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
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)
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)
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
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
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