Does gem5 have clflush implemented? - gem5

I would like to use clflush in gem5. Does gem5 have clflush implemented?
I saw a warning saying instruction 'wbinvd' unimplemented.

Related

TensorFlow and oneDNN

After installing tensorflow==2.9.1 and running it for the first time I got the following message:
2022-08-19 11:51:23.381523: I tensorflow/core/platform/cpu_feature_guard.cc:193]
This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)
to use the following CPU instructions in performance-critical operations:
AVX2 AVX512F AVX512_VNNI FMA
To enable them in other operations, rebuild TensorFlow with the appropriate
compiler flags.
This message is a bit confusing. At a first glance, it seems like a bad thing. But if you read it carefully, you realize it's actually a good thing. It's using all those nice extensions in "performance-critical operations". But then the last sentence makes it sound not so good, because they are not enabled in "other operations" (whatever they are).
Searching the above message on the interwebs I came across Intel® Optimization for TensorFlow* Installation Guide which said:
If your machine has AVX512 instruction set supported please use the below packages for better performance.
pip install intel-tensorflow-avx512==2.9.1 # linux only
Since my box supports AVX512, I've installed intel-tensorflow-avx512==2.9.1 and now got this message:
2022-08-19 11:43:00.187298: I tensorflow/core/platform/cpu_feature_guard.cc:193]
This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)
to use the following CPU instructions in performance-critical operations:
AVX512_VNNI
To enable them in other operations, rebuild TensorFlow with the appropriate
compiler flags.
Hmm...
So, my questions are:
Since Intel "optimized" version of TensorFlow only "complains" of using AVX512_VNNI in "performance-critical sections", does that mean it's using AVX2, AVX512F and FMA everywhere, including all "other operations"? Or does it mean it's not using them at all?
If it's not using them at all, does it mean it's "inferior" to the official version of TensorFlow and there is no point in using it?
BONUS QUESTION: Why are those cool AVX2/512F/512_VNNI and FMA instructions only enabled in "performance-critical sections" and not for all "other operations"?

DJI Manifold 2 (running on nvidia jetson tx2) USB devices cannot work after updating with Ubuntu's software update

After installing jetpack 4.4 on the DJI manifold 2G (Nvidia jetson tx2 version), the internal Ubuntu software updater pings me for a 2.3GB sized update.
Following which, after completing the update, all USB ports are non-responsive, and the processor's fan will continuously run at full speed. Restarting the device does not improve nor make things worst. The only way out seemed to be re-flashing the firmware with jetpack 4.4.
The specs are, if they are helpful:
Processor: ARMv8 Processor rev 3 (v8l) × 4
Graphics: NVIDIA Tegra X2 (nvgpu)/integrated
Os type: 64-bit
Memory: 8gb
Any help, or similar experiences and work-arounds are greatly appreciated. Thank you !
Edit
-Attempting to use the Manifold 2G image provided by DJI returned this error when executing sudo tar -zxvf
gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
As such, i am unable to downgrade back to the Jetpack 3.3 version
DJI mf2G uses a specifically modified version of the jetpack with DJI-preset serial port config.
Publicly, there is one standard version on the DJI website that you can restore to factory default. https://www.dji.com/sg/manifold-2/downloads
Privately, the DJI dev group also give out a Jetpack 4.3 version DJI image that can allow you to use docker(factory default does not allow). But I can not share it publicly. You may ask DJI support to release this version to you.

External GPU with Vulkan

According to this Vulkan tutorial, I can use vkEnumeratePhysicalDevices to get a list of available GPUs. However, I don't see my external NVIDIA GPU in there, only my Intel iGPU.
This eGPU is connected via Thunderbolt and is running CUDA code just fine. Is there anything I might have missed? Is it supposed to work out of the box?
My machine is running Arch Linux with up-to-date proprietary NVIDIA drivers.
The eGPU is a NVIDIA GTX 1050 (Lenovo Graphics Dock). Is it possible that it just does not support Vulkan somehow?
Vulkan support should work just as well with external GPUs (eGPUs). Seeing the eGPU enumerated as a Vulkan device may require the eGPU to be recoznized by Xorg (or Wayland in the future).
See recently created https://wiki.archlinux.org/title/External_GPU#Xorg for changes probably required in Xorg config.

How to run gem5 on KVM on ARM with multiple cores?

Single core worked with fs.py at a5bc2291391b0497fdc60fdc960e07bcecebfb8f (Nov 2018), but multicore hanged in early in the boot process. Is multicore KVM supported on ARM or not?
As of October 2019, gem5's ARM KVM is generally not robust enough to be generally recommended.
Multicore works on some setups and fails on others, so there are likely outstanding bugs, although I haven't seen a clear investigation that pinpointed those bugs yet.
There are also issues with GICv2 vs GICv3 version incompatibilities: only GICv2 hosts were supported natively at that point, although the option was added to use an emulated gem5 GICv2 with KVM https://gem5-review.googlesource.com/c/public/gem5/+/30921
It is likely not extremely hard to get it working, but it does require someone to sit down and focus on it for a few weeks.
Related threads:
https://gem5.atlassian.net/browse/GEM5-694 for more than 8 cores, make sure to enable the GICv2 gem5 extensions if you are using the gem5 GICv2 emulation as mentioned: How to run a gem5 arm aarch64 full system simulation with fs.py with more than 8 cores?

What is SYCL 1.2?

I am trying to install tensorflow
Please specify the location where ComputeCpp for SYCL 1.2 is installed. [Default is /usr/local/computecpp]:
Invalid SYCL 1.2 library path. /usr/local/computecpp/lib/libComputeCpp.so cannot be found
What should I do?What is SYCL 1.2?
SYCL is a C++ abstraction layer for OpenCL. TensorFlow's experimental support for OpenCL uses SYCL, in conjunction with a SYCL-aware C++ compiler.
As Yaroslav pointed out in his comment, SYCL is only required if you are building TensorFlow with OpenCL support. The following question during the execution of ./configure asks about OpenCL support:
Do you wish to build TensorFlow with OpenCL support? [y/N]
If you answer N, you will not have to supply a SYCL path.
It is optional step so you can skip if you want.
OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators.
so if you want to intall you have to Setting Up TensorFlow With OpenCL Using SYCL bellow link provide step by step information about it
https://developer.codeplay.com/computecppce/latest/getting-started-with-tensorflow