running OpenGL on AML gpu clusters - azure-machine-learning-service

I am trying to run rendering code based on OpenGL (https://glumpy.readthedocs.io/en/latest/api/app-backends.html) on NC machines as part of an AML experiment.
No matter the back-end I try to use, I get errors when rendering.
Is OpenGL usage supported in AML?
Did anyone had similar experiences? Where you able to solve it?
thanks,
Emanuel

I've never used OpenGL before, but I do see that it is available in anaconda cloud. My suggestion would be to build a Conda environment with the glumpy as a dependency. If that doesn't work you can build your own Docker image that has OpenGL installed and point AMLCompute to that image. Here's some guidance on training environment set up.

Related

Using docker as full OS?

Little intro:
I have two OS on my pc. Linux and Windows. I need Linux for work, but it freezes on my pc, but windows does not. I've heard that is a common thing for ASRock motherboards.
That's why i want to switch to Windows for work.
So my idea was to create docker image with everything i need for work, such as yarn, make, and a lot of other stuff, and run it on windows for using linux functionality. You got the idea.
I know that docker is designed to only do one thing per image, but i gave this a shot.
But there are problems constantly. For example right now i'm trying to install nvm on my image, but, after building the image, command 'nvm' is not found on bash. It is a known problem and running source ~/.profile adds the command in console, but running it while building the image doesnt affect your console when you run this image. So you need to do that manually every time you use this image.
People suggest putting this in .bashrc which gives segmentation error.
And that's just my problem for today, but i've encountered many more, as i've been trying creating this image for a couple of days already.
So my question is basically this: is it possible to create fully operational OS in one docker image, or maybe one could connect multiple images to create OS, or do i just need to stop that and use a virtual machine like a sensible person?
I would recommend using a virtual machine for your use-case. Since you will be using this for work and modifying settings, and installing new software, these operations are better suited to be in a virtual machine where it is expected that you change the state or configurations.
In contrast, Docker containers are generally meant to be immutable, as in the running instance of the image should not be altered or configured. This is so that others can pull down the image and it works "out-of-the-box." Additionally, most Docker containers available on Docker Hub are made to be lean, with only one or two use cases in mind and not extra (for security purposes and image size), so I expect that you would frequently run into problems trying to essentially set up a Docker image that you would be working on. Lastly, since it is not done frequently, there would be less help available online, and Docker-level virtualization does not really suit your situation.

Inferencing with a tf.lite model on 32bit linux

So I am 400 hours into a project at work building an automated image classification pipeline. I have have overcame many hurdles, and am about finished with the first alpha. Every thing runs in docker containers on my workstation. The only thing left is to build the inference service. So I set up one more docker container pull in my libraries and set up the flask endpoints, and copy the tflite file to the shared volume; every thing seems to be in order, I can hit the API with the chrome and I get the right responses.
So I very happily report that the project is ready for testing 5 weeks early! I explain that all we have to do is install docker, build and run the docker file, and we are ready to go. To this my coworker responds "the target machines are 32bit! no docker!"
Upgrading to 64 bit is off the table.
I tried to compile tensorflow to 32 bit..........
I want to add a single board PC (x64) to the machine network and run the docker from there but management wants a solution that does not require retrofitting.
The target machines have very unstable internet connections managed by other companies in just about every country on earth so a cloud solution is not going to work.(plus I need sub 50 ms latency)
Does anyone have an idea of how to tackle this challenge? at this point I think I am stuck recompiling tf to 32bit; but I don't know how!
The target machines is running a custom in house distro of Debian 6 32bit.
The target machines are old and have outdated software but were very high end at the time they were built.
It's not clear which 32bit architecture you want to use. I guess it's ARM32.
If that's the case, you can build TF or TFLite for ARM32.
Check the following links.
https://www.tensorflow.org/install/source_rpi
https://www.tensorflow.org/lite/guide/build_rpi
Though they're about RPI, you could get some idea on how to build it for ARM32.

Importing distro to compute engine

I want to import Linufix to the compute engine.
Anyone knows the steps to import a distro from the ISO image file?
Will it give me X window access to load the GUI from remote or just an ssh console?
Thanks
You can't directly create a GCE image from a ISO. Instead you have to do a minimal install, and then make an image from that installed system. This process can be a little complex, so the easiest solution is to use software like Hashicorp Packer to do it for you.

TensorFlow Optimization in DSVM

Problem statement first: How does one properly setup tensorflow for running on a DSVM using a remote Docker environment? Can this be done in aml_config/*.runconfig?
I receive the following message and I would like to be able to utilize the increased speeds of the extended FMA operations.
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Background: I utilize a local docker environment managed through Azure ML Workbench for initial testing and code validation so that I'm not running an expensive DSVM constantly. Once I assess that my code is to my liking, I then run it on a remote docker instance on an Azure DSVM.
I want a consistent conda environment across my compute environments, so this works out extremely well. However, I cannot figure out how to control the tensorflow build to optimize for the hardware at hand (i.e. my local docker on macOS vs. remote docker on Ubuntu DSVM)
The notification is indicating that you should compile TensorFlow from the source to leverage this particular CPU architecture, so it runs faster. You can safely ignore this If you choose to compile, though, you can compile and install the TensorFlow source code, and then use the native VM execution mode (vs. using Docker) to run it from Azure Machine Learning.
Hope this helps,
Serina

TensorFlow Setup for Udacity Deep Learning

I am trying to setup TensorFlow for Udacity Deep Learning (https://www.udacity.com/course/deep-learning--ud730). I read the instruction (https://www.udacity.com/course/viewer#!/c-ud730/l-6452084188/m-6560586345) but am need more direction
I want to:
1) Understand how to get setup to Run the Docker container from the Google Cloud repository.
2) Install TensorFlow on your computer (Linux or Mac OS X only), then fetch assignment code separately. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/udacity/README.md does not tell me this.
This is so I can run and learn independent of Google too. I am not sure which VM or Linux (CentOS) to use, special VM memory set up etc.
I appreciate your assistance. thanks!
https://medium.com/#Rapchik/running-google-s-deep-learning-course-material-under-windows-82d468b6d5be#.8acsjam1c
Everything I wanted ... it works!

Resources