This is a very good question!
I'm, an America, in India right now and have travelled here, every year now, since 2007. Just yesterday I used my American VISA CerditCard to pay for two pairs of designer eye-ware (frames and lenses), costing less than US$600. Like many countries, haggle!
But to get back to your question... Here are the facts: gone are the days where paying in cash USD is an actual advantage. It is illegal for the Indian shop keepers to accept USD, they may only accept local currency or credit cards. There are very few establishments that do have permits to handle USD, but they are few and far between.
The only place there remains a real black market for USD is in China (as far as I am aware).
You will probably get the best price with cash INR (Indian rupees). Your best is your Credit Card, because often they can charge you in INR. In turn, the credit company charges you in USD. Almost all shops accept VISA and American Express, and you will be SAFER! Just by carrying a credit card you will be protected in more ways than I have space to describe. Do not offer to pay in cash USD, most shop who accepts will be breaking the law, and will probably give you a worse exchainge rate than the credit card company! And, you will have no recourse if you return home, unaware of defective or faulty equipment.
I hope this can be of some help. I will try to lookup reputable shop for your next question. Remember; No guarantee, only with VISA and American Express!
BTW, yes you will need some INRs, in cash, for smaller things and other incedentals. almost 6 years ago