Archive for October, 2013

Now, I found this post worth writing for my dear juniors and myself naturally.

Opencv uses CUDA to run code on GPU. CUDA library is however only available for Nvidia graphic cards and there is a wide range of NVIDIA graphic cards that support CUDA.

https://developer.nvidia.com/cuda-gpus mentions various cuda enabled GPU. With every CUDA-enabled GPU processing would occur at different computational capability.

Now the first category of NVDIA GPU is “Tesla”. Telsa series represent best of all NVDIA GPUs. But with high performance, they come with a large bill. Each telse gpu costs around few thousand dollars. Hence, I had stop searching more about tesla gpus for obvious reasons.

Next comes the “NVS” series. Now this series is designed to support multiple monitors (say 4). This series is surely not for the high computational purpose. Nvidia page (https://developer.nvidia.com/cuda-gpus) mentions a very low computation capability for them. It would be a dream come true for me to have 4 screens in a non-parallel system. But, would not resolve my priority concerns. Just for records, this card can do cool stuff as shown in image:

The budget is also a concern. It is the major reason why we can not afford Tesla series.

Now, Geforce and QuadPro products are of our interest. Geforce series represent GPU specially designed more for gaming purposes. Whereas, QuadPro series is designed for a more professional use like CAD with a workstation.

www.nvidia.com/object/quadro_geforce.html explains advantages of quadpro over GeForce. However with list of advantages quadpro comes with greater cost too. Price of entry lever QuadPro GPU is comparable to mid-range GeForce GPU. Thus GeForce may perform better than QuadPro on the basis on cost of product.

GeForce GTX 650 is the first model with computational capability 3.0. In QuadPro series, K600 is the first model with computational capability 3.0. Following table shows comparison between them:

GeForce GTX 650 QuadPro K600
Computational Capability 3.0 3.0
CUDA cores 384 192
Base Clock (Mhz) 1058
Memory Bandwidth (Gbps) 80 29
Memory 1 Gb DDR5 1 Gb DDR3
OpenGL support Yes (4.3) Yes (4.3)
CUDA Support Yes Yes
Price (INR) 7855/- 15,000/-

Source for above info: 1) http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-650/specifications

                                 2) http://www.nvidia.com/object/quadro-desktop-gpus-specs.html

Someone very well explained, “If you think of your video card like a freeway, then CUDA cores would be analogous to the number of lanes in the road,clock speed would be the speed limit, and memory interface would be the number of lanes for exit/entry ramps. More lanes means more cars can be moving on the freeway at any given time, the higher the speed limit the faster any given car is moving, and then if there’s say 2 exit lanes instead of 1, you can have more cars getting off the freeway, same as you can have more cars coming onto the freeway if there are say 2 entry lanes instead of 1.“

Thus for a specific economic range, there will always be GTX card with better hardware specs then the QuadPro. However, major difference lies in the fact that GTX cards are majorly designed for gaming. However, they can still meet our requirements.

On a blog post at http://www.timzaman.com/?p=2256 , author compares various GPUs for few openCV functions. He concludes as, “ In terms of value for money, the GTX 670 (€400) with 2Gb of RAM is very nice. There is absolutely no reason to buy the GTX 680 since it costs € 100 more. Then again, the GTX 570 costs €300, which is nice, but only has 1,25Gb RAM, which can be dangerous when working with large images (nasty errors).
It is clear that GPU computation is BLOODY fast. But i HAVE to note, that only a SINGLE core of the CPU’s were used for the normal CPU functions. These algo’s have not really been optimized for multithreaded if I’m not mistaken. On the other hand, speed increases of >20x is too much for any intel CPU to catch up with. GPU Computing is a must if fast image processing is important.”

Advertisements

This happened few weeks before. But i am putting  it down here so that I can read it in future and smile.

I received an email from someone (Let’s say Mr. ABC working at amazon). Now the mail was as given below (recreated!):

I am contacting you to check if you would be interested in working with Amazon Hyderabad for a Software Development Engineer. Kindly respond back to -: XYZ@amazon.com to take this forward.

To which I replied that I would be interested in internship and forwarded my CV.

Now, few FAQs:

1) How did they reach me? : “Frankly speaking I don’t know. Someone said that HRs usually scroll linkedin and contact people with good profile. This could be the reason, but am not sure about it. Even both HRs, ABC and XYZ are not connected to me anyway. Not even in linkedin. I regularly maintain my linkedin profile, which u can check at: http://in.linkedin.com/in/kreezire.

2) Why did they contact me ? : “Call it exaggerated but, after seeing my work experience they thought am already graduated. So, that means they may approach me again next year. Ahem Ahem… even I can refer few people now “

Moving further, After weeks of my respond, they finally called me and scheduled my written test.( I thought it was for INTERNSHIP.) It was a coding test. I was given three questions and total time was about 1.5 hours. It was on Interview Street only. No objectives type questions. Two of them were solved using DP while the third one was relatively easy. After written, I had series of telephonic interviews (all technical). Interviewer asked me even to code on collabedit. Collabedit is a site that allows collaborative editing. So, any change I make in my doc appeared on his computer also.

Now, about the questions, Amazon usually repeat their questions every year. So, it is always good if you check few blogs to see previous year questions (which I did only for my last interview). My written was completely different! Their favorite topics for interview are binary trees and binary search trees. My first interview was only about BT and BST. I gave 4 different algo to check if a BT is BST.

The person who takes technical interview is not generally from HR department (Obvious!). He might belong to the department for which you are about to be selected. Apparently, I cleared all the rounds.

Quick tips:

1) Study Data structures. At-least you should know all definitions. I did not know that in BST equality always appear with the left child. My interviewer told this to me.

2) Interviewer gives time to think. But do not ever take too much time to answer.

After that! I guess most of my friends wanted to know what happened finally. For them, don’t worry am still unemployed. Now the craziest thing which no  one knows is that on the day of my last telephonic conversation, i received another “similar looking mail” from Amazon asking if i would like to work with them. The only difference is that this time it was from Amazon BANGALORE!