Results

Showing posts with label driver. Show all posts
Showing posts with label driver. Show all posts

Life Underwater

This article has been published in the Onam issue (2012 August) of 'Ithalukal' magazine.

"It feels strange the first time. Your mask. Your awkward gear, a bit heavy. You ease into the water and your face slips below the surface. Inhale; the air comes with a reassuring hiss, and for the first time, you breathe underwater. In moments, you forget your mask. Your equipment transforms to light and agile, and you're free like you've never experienced before. With that first underwater breath, the door opens to a different world. Not a world apart, but different nonetheless." - PADI OPEN WATER DIVER Manual.

Indeed it opened a whole new world when I descended to the depths of the sea for the first time. I was barely able to believe my senses, and for a moment I thought I was dreaming. With that first underwater breath, I realised, my world would never be the same again.

Even though I loved any form of water sports from my childhood and wanted to try scuba diving for a long time, I wasn’t able to, until I moved to Singapore. South-East Asia boasts some of the best warm water dive sites in the world. I had an extra privilege. I worked in a place where there were more divers than non-divers. Also, the nature of our work required us to spend as much time in the sea as that on land. That was my motivation. From the information I gathered from my diver friends, I set out and joined an open water course in 2009. My first dive trip, for Open Water Certification, was to Tioman Islands, Malaysia. I've got to say, I got hooked after that.

Even after 3 years, I vividly remember how I felt when I descended for the first time. Once completed with the initial checks, my instructor gave me a final OK to descent. I deflated my BCD (Buoyancy Control Device) and began to sink slowly. After dealing with few distractions like equalising, orienting myself, I looked around. It was like the entire world had turned blue. And very quiet. It took around a minute for me to touch down (~ 6-8m). Since it was our first dive, we were descending into a patch of white sand. As soon as I was done with the basic skills, while waiting for others to finish, I began exploring the small reef near me. I found an anemone there inhabited by a school of clown fish (commonly known as Nemo) so beautiful with their orange and white banded bodies and their graceful movements in the corel. It was my first close encounter with any sea creature. From that point onwards, my world was never the same again, the sea never stopped surprising me. For the remaining dives, I swam along a variety of colorful fishes, saw some weird shaped creatures, all of which forged an even stronger bond between me and the nature.

Shy Nemo trying to hide from my camera, a snap I took while diving in Bali.

Me ‘n my buddy under the wreck of USAT Liberty, a World War II transport ship

A scorpion fish trying to blend in with the reef

I have gone diving in some interesting places, met people from different parts of the world and most importantly, seen some really unique creatures in the sea which sometimes were beyond my wildest imaginations. Each and every time I go underwater, I find something intriguing or learn something new. Even then, I know what I have seen so far is only a fraction of what the nature has to offer. Now that my better-half has also joined me in my passion for diving, I know I will be able to discover more and more secrets, the nature has been holding back from me and that the real adventure is only beginning.

For those who are interested in pursuing this amazing activity, here is some useful info.
Even though there are some introductory course which helps you get a feel of what its like without taking a proper certification, I recommend you start with the certification which enables you to dive anywhere in the world. There are many certifying agencies, but PADI (Professional Association of Diving Instructors) is the world's largest recreational diving membership and diver training organization.
It’s relatively easy to find a dive shop/operator in the South East Asia as some of the best dive sites in the world are located here. Either you can join a trip organised by a dive operator in your region who will arrange all the logistics or you can travel to the specific place you want to dive and sign up with a local dive operator there.
The main prerequisite for diving is swimming. You don’t have to be a world class swimmer, but you need to be able to float/hover in the water for 10 minutes and need to be able to swim 200m, non stop. In my opinion, even if you have to enroll for a swimming course, it’s worth it.

Once you take the first level of certification - Open Water Diver - you can dive up to 18m. The next level of certification is Advanced Open Water Diver which lets you to dive up to 30m. It also lets you do some of the fun stuff like night diving, drift diving, underwater navigation etc. If you are only looking for leisure dives, these two certifications are more than necessary. But there will always be a next level like Rescue diver, Dive Master, Instructor etc which takes your diving skills to a professional level. If you want to push your limits and cross the boundaries of recreational diving, technical diving is the one for you.

So, what are you waiting for? Get, set and dive!

nVidia CUDA, nVidia Optimus, Linux & their complex relationship


After months of brainstorming on whether to get a Macbook or a Win7 laptop, how and where to buy it, what configuration to choose etc, I finally got my new Alienware M14x (Win 7) last week. Unfortunately I got my hands on it last Monday, which in my opinion left me no choice but to reduce my sleeping hours to 3-4hrs a day. With all those extra ‘sleepless’ hours I managed to find, I could accomplish quite a lot of things I had in my rather long TODO list by the end of the week, or so I thought. But I still haven’t completely set up my system, the way I wanted – lots of games, a Linux development environment etc.

The culprit is none other than the most important component in the laptop (for me) - the GPU. Since gaming, photo editing and GPU programming (nVidia CUDA) are the three things I am looking forward to focus on for most of my time, I wanted to make sure I made the right choice in selecting the GPU. The M14x comes with an nVidia GeForce GT 555M and it boasts the nVidia Optimus technology which uses switchable graphics (with Sandy Bridge integrated GPU) for power saving. All the reviews explained a lot about how this laptop takes full advantage of Optimus. But what none of the posts (I read) mentioned was, just like any other new technology, there is no support for Optimus in Linux till date, not by nVidia, not by Linux or not even by the manufacturer (in my case, Dell/Alienware).

What this means is, even though I will be able to use the nVidia GPU in Linux for CUDA programming, I won’t be able to use the nVidia GPU for any graphics applications in Linux. For example, I will be able to do computations on the GPU as a coprocessor, but it cannot be used for display in Linux environment. It doesn’t affect me a lot as I am not looking forward for any graphics programming in Linux in the short term, I already have my hands full with the TODO list I mentioned earlier. But it sure is a bummer considering I wanted to try out some graphics/game programming in the long term in the Linux environment. Hopefully there will be support for the Optimus technology in Linux soon.

I learned this fact the hard way, after spending long hours trying to setup my system to use the nVidia GPU. This post may/may not offer any solutions to any particular problem, but just a few observations and links to some of the sites/forums that helped me in the process.

To begin with, my requirement was to be able to do CUDA programming on a Linux environment in my M14x (GT 555M). On a side note, I have done CUDA setup & programming in the past and was familiar with it. My first step was to choose one of the Linux distributions supported by CUDA. I chose Ubuntu 10.10 and installed it. During my first boot, it asked me to upgrade to 11.04, which I did not accept because I knew that gcc 4.5 or above is not supported by CUDA at the moment. Ubuntu also asked me to activate the nVidia driver which I did it. Then I downloaded the CUDA dev driver, toolkit 4.0 and the code samples. I rebooted the machine and the Xserver failed to start. So, from the command prompt, I removed the ubuntu supplied driver.

sudo apt-get --purge remove nvidia*

Then I installed the dev driver downloaded from nVidia site.
Chmod +x "filename"
./"filename"

I also installed the toolkit (also set the path), samples and the required libraries for building them as specified in the CUDA Getting Started Guide (Linux). I rebooted the machine and again the Xserver failed to start. I poured through support forums & blog entries, tried the black listing method, reinstalled various drivers etc. None of them worked. Ubuntu was unable to load Xserver. So I decided to reinstall Ubuntu and start from step 1.

This time I was more cautious, I did one step at a time. But the moment I installed the dev driver and reboot, Xserver stopped working. What perplexed me more was, I was still able to run the CUDA binaries, which means the driver is installed properly. For a moment, I considered giving Fedora 13 a try.

That’s when I realized that I am using Optimus technology and the thought crossed my mind that what if Linux is trying to use the integrated GPU and nvidia driver is conflicting. My heart sank when I found out that there is no support for Optimus in Linux. There is third party software called bumblebee, which didn’t work for me. Some of the posts talks about a BIOS setting which can force either of the GPUs rather than switching them dynamically. But M14x BIOS doesn’t have that option, yet. So, I was out of options and that when this post helped me. It helped me deactivate the nVidia driver and use the integrated GPU for Xserver. Also the GPU is detected as a coprocessor so that I can do my CUDA programming as long as I am not playing with graphics. Remember to update the Intel graphics driver.
sudo apt-get install xserver-xorg-video-intel

In a nutshell, if your laptop is equipped with Optimus, better use the integrated graphics as of now for Linux. It’s a shame that so much GPU power is simply wasted.