Can not connect to cuda in Google Colabs - machine-learning

I have been trying this for a couple hours now. It was working before, so I do not understand why it is not working anymore. When I try see if cuda is available, with the torch.cuda.is_available() line, it always returns false. However, when I check the version with things like !nvcc --version and !nvidia-smi it still returns a chart with the cuda information.
Pretty much all sources online mention to go to the Runtime Settings and enable GPU, and I have done that. But it does not work, it still says that cuda is not available. I have tried running my code without cuda, and it would take around 6 hours just to train my CNN model. Before, when cuda was working fine, it took less than 5 minutes maybe to train the model. I had some error messages before about being at GPU limits, and I even bought the Google Colabs Pro subscription to try to fix this, but it is not working. Any advice?

Related

Installing Broadcom Wireless Drivers on Solus

all. I've been having trouble installing broadcom drivers that actually work for my PCIe WiFI card. Specifically, I want to know specifically the consecutive steps one must take to install the proper Broadcom drivers for this card: Rosewill RNX-AC1900PCE. I found this page referring to it:
https://wikidevi.com/wiki/Rosewill_RNX-AC1900PCE
it appears to me model BCM4360 (which seems to be important referring to this post:
https://askubuntu.com/questions/55868/installing-broadcom-wireless-drivers
Okay. It's Rosewill product support page only has Windows drivers available (if you do not believe me, check it out). I saw this post
https://www.reddit.com/r/archlinux/comments/5a35zn/wifi_not_working_broadcom_bc4360/
referring to the same Broadcom chip, but with worrisome news (it was hard to get working, and it worked less effectively than it did on Windows).
I've posted about this question asking for help/developer support in the Solus Discus forum: https://discuss.getsol.us/d/243-broadcom-drivers-not-working
And in the Solus Development Portal: https://dev.getsol.us/T7698
With no luck. I know for a fact it was working perfectly a few weeks ago on Solus.
I'm not really sure what to do. Is there anyone on here smart enough to help me through my troubles? Thanks!
EDIT: It somehow resolves itself after a DoFlicky installation of the driver and a reboot... even though this was the fourth time I tried this? Oh well, the driver issues will always be mysterious to me.

How to access webcam through opencv in bash?

When accessing webcam through python opencv, isOpened() returns False and no data is read. Does it has to do something with wsl?
According to this github issue, hardware access is not supported yet in WSL:
Ben Hillis: Hardware access is another area we will be investigating in the future.
All hardware related CLI tools seem to fail (dmesg, lsblk, lsusb returns nothing, /dev is empty...) so it looks like this statement is still valid today. That explains why you cannot access your camera in OpenCV.

What are the steps should be taken to make sure that the OpenCV code running on PC will run on a particular embedded device?

I want to port a good OpenCV code on an embedded platform. Earlier such stuffs were very difficult to perform but now TI has come up with nice embedded platforms which are comparatively hassle free as they say.
I want to know following things:
Given that :
The OpenCV code is already running on PC smoothly. (obviously)
Need to determine these before purchasing the device.
Can't put the code here in stackoverflow. :P
To chose from Texas Instruments: C6000.
Questions:
How to make it sure that the porting will be done?
What steps to be taken to make it sure that after porting the code, will run (at least).
to determine whether the code might require some changes to make its run smooth.
The point 3 above is optional.
I need info which will at least give me some start up in this regard.
What I thought I should do?
I am to list the inbuilt functions down.
Then to find available online bench marking for those functions for the particular device like as shown towards the end of this doc.
...
Need to know how to proceed further?
However C6-Integra™ DSP+ARM Processor seems the best.
The best you can do is to try a device simulator (if it is available), but what you'll see there is far from perfect.
Actually, nothing can tell you how fast and how well the app will run on the embedded device before running you specific app on that specific device.
So:
Step 1 Buy it
Step 2 Try it
Things to consider:
embedded CPU architecture: Your app needs a big cache? how big is the embedded cache?
algorithm: do you use a lot of floating point operations? how good is the device at floating point ops?
do you have memory transfers? data bus on a PC is waaay faster than on embedded
hardware support: do you use a lot of double-precision calculations? they are emulated on ARMs. They are gonna kill your app (from millisecons on a PC it can go to seconds on a ARM)
Acceleration. Do your functions use SSE? (many OpenCV funcs are SSEd, even if you don't know). Do you have the NEON counterpart? (OpenCV does not have much support for that). The difference can be orders of magnitude from x86 SSE to embedded without NEON.
and many, many others.
So, again: no one can tell you how it will work. Just the combination between the specific app and the real device tells the truth.
even a run on a similar device is not relevant. It can run smoothly on a given processor, and with another, with similar freq or listed memory, it will slow down too much
This is an interesting question but run is a very generic word in this context, therefore I feel the need to break it down to other 2 questions:
Will it compile in an embedded device?
Will it run as fast/smooth as in a PC?
I've used OpenCV in a lot of different devices, including ARM, SH4, MIPS and I found out that sometimes the manufacturer of the device itself provides a compiled version of OpenCV (for my surprise), which is great. That's something you can look into, maybe the manufacturer of your device provide OpenCV binaries.
There's no way to know for sure how smooth your OpenCV application will be on the target device unless you are able to find some benchmark of OpenCV running in there. PCs have far better processing power than embedded devices, so you can expect less performance from the target device.
There are 3rd party applications like opencv-performance, that you can use to test/benchmark the environment once you get your hands on it. And if performance is such a big deal in this project, you might also be interested in this nice article which explain some timing tests done on couple of OpenCV features comparing implementations using the C and C++ interfaces of OpenCV.

Intel 8086 processor

I am taking a hardware class than involves a lab, the lab is about Intel 8086 processors and I have a lab final tomorrow. Other than the information provided in the lab, what other sources can you provide me with to study for it (done the labs, need more resources, code, slides, and experiments to try on my own machine)?
Years ago (1991) there was this little program called helppc.exe that contains a lot of information about assembly and 8086 related stuff.
There seem to be an HTML version of that here:
http://idlebox.net/2006/helppc21/HelpPC-2.10-HTML/
The original EXE version seem to be available here:
http://magicrhesus.be/esi/esi1/LMI/
And you'll need DOSBox to run it
My recommendation is to cease ell studying at this point. The time for extra material was last week at the latest. Instead, relax, tidy up your notes and clear your mind for the task tomorrow. Marathon runners do not add another long training run the day before the event, neither should you.

Can I use openCL in a application that I distribute to non developer machine?

I recently started to learn how to use openCL to speed up some part of my code. So far the speed gain is impressive. In one case the code ran up to 50X faster than on the CPU. However I wonder if can start using this code in a production environnement. The reason is that the first time that I tried to run the example code, nothing worked. I was able to make it run by downloading the driver on the Nvidia openCL SDK download page (I have a Geforce GTX260). It gave me a blue during installation but after that I was able to run the example program and create my own code.
Does the fact that it didn't work "out of the box" for me mean that the mainstream drivers does not yet support it, despite the fact that it is specifically written that it does on the driver download page? What about ATI support? Will everyone have to download the special driver that gave me a blue screen on install?
In short, is openCL ready for production code?
If someone can give me some details, I'd like to know. Does anyone has been able to run a simple program on a number of different device without installing anything SDK related?
You may find an accurate answer on the OpenCL forums on the Khronos Group message boards. The OpenCL work group hangs out there regularly.
Does anyone has been able to run a
simple program on a number of
different device without installing
anything SDK related?
Nop. For instance, on ATI's GPUs end-users need to install ATI Stream SDK in order to run OpenCL code (just having an up-to-date graphics driver is not sufficient).
You may want to consider trying DirectCompute (Microsoft's version of GPU programming) or doing your OpenCL work on a Snow Leopard Mac. Those are the two ways (that I know of) that you can deliver a GPU programming solution to another user without any driver or other installation hassle.

Resources