I have a Kinect 2 that runs at a framerate around 5-7 FPS (sometimes it peaks at 15 fps)
The system is an HP laptop, G3 i7-6820HQ, 8 gb memory, with an intel graphics 530 and an Nvidia Quaddro M1000M on Windows 10 Enterprise. As far as I can tell the system should be powerful enough to run the kinect at a better framerate. I've run the kinect on a another machine equipped with just an intel GPU, and it runs at a similar framerate, so I'm suspecting that it doesn't utilize the NVIDIA GPU.
I've followed the steps for multi-gpu systems outlined here:
https://social.msdn.microsoft.com/Forums/en-US/20dbadae-dcee-406a-b66f-a182d76cea3b/troubleshooting-and-common-issues-guide?forum=kinectv2sdk
but without any effect
Any ideas?
EDIT:
It seems to me that the kinect is indeed using the nvidia card:
Any other ideas?
I also had a problem with my frame rate. I was plugged into a low-speed USB port on my computer. Simply switching to a high-speed USB port solved the problem.
Related
I hear a lot about "Hypervisors are not emulators. If you need to emulate another hardware specifications than you computer have, you need to use emulator, not hypervisor".
Well, but yesterday I saw this video on youtube - click here - which shows how to install Win 95 on modern macOS with VMware Fusion.
The strange thing for me is that on 17:39 you could see that Win 95 virtual machine is "Pentium Pro with 64 MB RAM".
Hmm! So, Fusion somehow faked processor and RAM, right? But it is not emulator, right? So, does it mean that any hypervisor can fake processor and RAM?
At the time of its release, Windows 95 only had code to recognize CPUIDs up to Pentium Pro. Any processor not lower than Pentium Pro is "called" Pentium Pro.
The main difference is the Hypervisor cannot emulate CPU code. All code must run on the original processor.
The hypervisor does emulate the BIOS, which in tells the OS the hardware specs available; including RAM, Boot order and peripherals attached.
When you are talking about VMWare Fusion the way this works depends on how virtualization is achieved. According to wikipedia VMWare Fusion utilizes hardware-assisted virtualization, dynamic binary translation, and para-virtualization.
In the hardware-assited virtualization case, #Strom is correct and guest instructions can be executed directly on the host CPU. Besides #Strom answer, you can fake the CPU type by trapping and emulating the cpuid instruction.
In the para-virtualization case you replace critical instructions by calls to the hypervisor which emulates the instruction on behalf of the guest. So again you emulate the cpuid instruction to "fake" the CPU type. Keep in mind that this requires a modified, hence para-virtualized, guest operating system.
Finally, dynamic binary translation scans the guest code for critical instructions during runtime and either replaces them by traps into the hypervisor achieving some kind of "live para-virtualization" or translating blocks of guest code into equivalent blocks of host code that modifies the VM state according to the original guest code (this is e.g. how the QEMU full system emulator works). As a result, again you are able to "fake" the CPU type by emulating the cpuid instruction. Notice that guest and host can be the same architecture in this case, but there is no need for this.
Of course a combination of above techniques is also feasible.
As for virtualization of main memory, the hypervisor is in full control of the hardware so you can simply configure a VM with just 64MB of main memory. The VM is not able to "see" more than this due to the techniques shortly discussed above.
Please keep in mind that this just gives a very short overview of virtualization and I tried to keep it short and informative, so I know my explanations are partially not very accurate. If you are really interested in virtualization I recommend reading "Virtual Machines: Versatile Platforms for Systems and Processes" or the papers on the topic by Popek & Goldberg and "Xen and the Art of Virtualization"
So I've got a few Kinect v2s and am hoping to set up an array of them to get a 3D recording of an area in space (Eventual goal is to build a 360 image from multiple point clouds) But at the moment I can't even get one working on a machine.
I've installed the official SDK onto a windows 10 device and when opening the kinect studio I get nothing but a grey screen when connected to the kinect. Running the kinect configuration verfier says the USB controller is unknown and the system is waiting for the kinect to respond. The kinect itself does not light up, and it's cooling fan does not turn on.
I have reinstalled the SDK, tried 3 different kinects, tried various drivers and troubleshooting guides, and still cannot get anything out of the kinect.
The best answer I've found is that only some controllers are compatible, but every PC I have tried (currently 5 machines) have "Intel(R) USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)" So basically do I really have to get a PCI USB controller or another machine, or is there any way to get the current system to work with the kinect v2 at all.
Also if I do need to buy a new device or PCI card are there any recommended for a setup that would idealy run 4-5 kinects?
Unfortunately, the Kinect V2 prevents you from simultaneously running more than one Kinect on a system:
Sensor Acquisition and Startup
Kinect for Windows supports one sensor, which is called the default sensor. The KinectSensor Class has static members to help configure the Kinect sensor and access sensor data.
Kinect API Overview
A workaround that I've used in the past is to have 1 computer for every Kinect (doesn't have to be fancy, just enough to run it) and then network all the machines together with a router. Designate one machine to be the controlling machine (handles turning on/off of other Kinects). Depending on what you plan on doing to the data, it may be helpful to have those other machines perform some pre-processing and leave the stitching off all the Kinects' feeds up to the controlling machine.
As far as the USB controller goes, I'm running Kinect v2 on that exact one, so other than that malfunctioning, I think you're fine. Have you tried running the "Kinect v2 Configuration Verifier" to see what it suggests? Kinect v2 Configuration Verifier
linux kernel 4.9.7
libvirt 2.4.0
qemu 2.7.0
HOST:
i7 6700
ASUS B250M-PLUS
2xGTX1060 3GB
500Wpower
1x PCIEtoUSB3.0 card (Reneses chip)
I have two VMs using different GPU
I'm using usb controller passthrough now
VM1 has motherboard controller
VM2 has the PCIE CARD
BUT!!!!!!it is instability!!!!!
mouse and keyboard will be no use sometimes
so i am thinking about passthrough usb hub to be stable
is there any way to do it
this question is interesting. But you should provide more infos about the problem, how you started the machine, what precisel is working and what not.
Btw, use some more time to format your question...
Maybe you background is, that it is dificult and mayby impossible to passthrough an hub to a vom using the normal QEMU VID/PID combination. You can probably show the VM the hub, but all devcices connected to it are still owned by the host.^^
The only way I see is to pass through your nice PCIe USB3.0 controller to your desired VM. You need to enable the IOMMU feature in Grub for KVM to do so. But then it will work.
I am working on a machine with an older intel CPU (core 2 duo 2.4 Ghz e6600) that doesn't have SLAT and doesn't support Hyper-V.
It is running Windows 8.1 (64 bit) with 4GBs of ram. What software options do I have if I wanted to run a virtual machine, in this case, another instance of Windows (ex. Win 7)?
Am I SOL? Will speed of VM be limited more by ram, cpu, or hard drive in this case?
Thanks,
i think your best option is VirtualBox form oracle, i use it becouse i have the same tipe of procesor, an work really fine for me, the only think you can only instala x86 OS, but anything else works fine.
some spec's for your virtual machines
Windows
Ram 1gb to 2gb, it is fine
procesor one core only
HDD 40gb it almos enough for you want todo (as developer i only use it for testing)
video dont use it unless you need it
linux/unix
Console only
ram 256MB to 512MB
procesor one core only
HDD 40gb it almos enough for you want todo
video is not need here
GUI mode
ram 512MB to 1gb(i recomend use 2gb if your plan to use Ubuntu)
procesor one core only
HDD 40gb it almos enough for you want todo
video dont use it unless you need it
hope help you
How much difference does dedicated graphics and HDD speed matter when using virtual machines?
For the last year I have been using a MacBook Pro 15" with the following specs with great success.
Core i7
8 GB RAM
7200 RPM HDD
Dedicated Graphics card (NVIDIA GeForce GT 330M 512 MB)
I do a good deal of development in Windows so I use VMware Fusion with Windows 7 and Windows Server 2008 as guest operating systems. Everything has worked really well.
Well, recently my wife's MacBook died and we got a replacement MacBook Pro 13" with the following specs
Core i7
8 GB RAM
5400 RPM HDD
Integrated graphics (Intel)
Since the processor and RAM are the same I thought I might benefit from the smaller form factor of the 13" MacBook (can use external monitor when at home) and my wife could use the power of the dedicated graphics for video editing and the like.
So that brings me to my question. How much will a slower HDD and non-dedicated graphics card effect my virtual machine performance? I don't play any games so I never thought I made use of the dedicated graphics card. I don't know if it actually helped with the VM or not. What about the Disk Drive speed? Does this play a major factor? I really never noticed any swapping when using VMWare Fusion. Thanks for any insight.
The difference will be negligable. You won't notice the graphics at all, and will barely notice the difference in speed from the hard drive.
Solid state disks are dropping in price all the time, if you do feel like the drive is "slow" down the track you can purchase an SSD and upgrade it yourself fairly easily without voiding your warranty. (OWC sell DIY SSD upgrade kits for example)