Friday, March 13, 2015

Slowly bringing up my new computer dual boot

I've been slowly setting up my new computer.  It's a nice machine.  Windows 7 gives it a 7.8 user experience rating.  Setting up windows was quite easy.  I have two SSD.  I had intended to load Linux on one drive and Windows on the other.  I tried to do that several times.  I may yet get that to work but for right now I ended up loading both on one drive.  Installing Ubuntu Linux on the same drive with Windows was quite easy as well but I had to use an access point and the ethernet connection.  I'm still having trouble getting the display driver installed and haven't even tried to load the usb WiFi driver.

I tried installing the driver for my GTX970 using the instructions at ask ubuntu.  After rebooting things looked normal until I logged in.  After logging in all I got was a background.  I can move the cursor around using the mouse but that's it.

I tried rebooting Linux in recovery mode but I couldn't roll back my driver changes.  I think I'll have to reinstall Linux and try again.  Unfortunately I don't know Linux well enough to muck with it.

On the good side, Civ 5 plays much better in Windows on the new machine.  I hadn't realized just how marginally playable it was on a machine with a 5.1 user experience rating.

Still, I want to start learning Convolutional Neural Networks using tools like Torch 7 on a machine with enough CUDA cores to not be too painful.

Friday, March 6, 2015

Building out a new computer.

About two weeks ago I had a new computer built for me.  It isn't top of the line but it is very good.  I intend to have dual boot between windows and Linux.  I had them install Linux but they installed the wrong version.  I wiped Linux and installed Win 7.  It was quite painless but took several rounds of updates and looking up drivers for various components. 

I went with the ASUS USB-AC51 wireless WiFi adapter.  The adapter wouldn't work until I installed the drivers from the adapter's CD.  Unfortunately that's not going to work for Linux because I have to compile the driver from the code on the disk.  The computer's builders told me the driver kept throwing errors in Linux.  I think it was beyond his skills.  He knows how to install Windows but Linux was outside his comfort zone.  I happened to have an access point I was using for my Blu-ray player.  I plugged it in and ran Linux from the installation disk.  It made the connection just fine.  At least I have a back up plan until I get the driver for the AC51 compiled and installed.  I will be able to let Linux get the latest version of the software components during the install.  But first I will create a recovery disk so I don't have to re-install Windows.  The Linux documentation says that if one intends to do a dual boot one should install Windows first because it wants to format the drives during the installation.

Originally I was going to just install Linux along side Windows without creating a recovery disk for Windows.  The MBR vs GPT issue scared me off.  I'm so out of touch with current technology.

Thursday, February 26, 2015

Why isn't a "Right to Invest" rhetoric pushed by the right?

Something is quite strange about "Right to Work" legislation.  What exactly is "Right to Work" providing and to whom and why?  The rhetoric seems to be about people having the right to work for a company without joining a union who has negotiated terms with a company requiring union membership as a condition of employment for the job.  The unions have backed off and merely require membership dues and yet this seems to be too much because people say they don't want to support the union's political activities.

I have somewhat mixed feelings about unions.  I don't like unions, including trade unions, limiting who can do a job by criterion other than willingness to join the union and to perform up to standards.  On the other hand, I know the individual is at a disadvantage in employment negotiations for many jobs.  My idealization of the unions would be an organization who works to get the best wages possible for the people best suited to the job while finding ways to support members who are falling behind but have supported the unions in the past.  There's no way I can support a union's right to tell highly qualified individuals they can't work because they have under-qualified workers who need a job.

The issue doesn't really seem to be about right to work at all but about the right to control political spending by unions.  The notion seems to be that a laborer shouldn't be required to contribute a portion of the proceeds from his or her productive activities to political causes with which he or she disagrees.  I could almost buy that and agree if the same underlying principle applied to the proceeds of one's investments but it does not.

While some of us have inherited our wealth most of us have what we have due to our productive activities.  When we invest our money we are really investing a portion of our prior productive activities.  ShareholderActivist.com chronicles attempts to open up the political activities of corporations to their shareholders and how that languishes.  It tuns out people in power don't even want me to know, let alone control, how the proceeds of my investments are spent on political activities.

"Right to Work" appears to be political gamesmanship wrapped up in rhetoric surrounding a real issue.  It isn't about making sure the best person for the job gets hired.  It certainly isn't about making sure the person getting hired gets the best wages possible.  It isn't even about the principle of political spending being controlled by the individual funding it.  It's about party politics.

Monday, February 23, 2015

I'm getting a new computer to learn CUDA programming.

OK, the release of the GTX960 video for about $200 got me thinking.  I've been waiting for sufficient computing power to fall into my price range so I can get a good feel for the state of Artificial Neural Networks.  ANNs have a long history dating back to the perceptron.  From that early start in the late '50s things went sour and symbolic reasoning took center stage for Artificial Intelligence.  Symbolic reasoning itself has had problems as chronicled in the Wikipedia page AI Winter.  Now it looks like Connectionism is back and GPUs are helping in the process.

The human brain has about 100,000,000,000 neurons.  Each neuron typically connects with 1,000 to 10,000 other neurons or other cell types.  Only governments can afford that kind of computer power right now.  It certainly takes more than the 10 watts our human brain takes.  What's a mere hobbyist to do?

Here's the thing, many specialized applications based upon the connectionist model are coming in the reach of hobbyist.  The Tesla K10 has 2 1536 core GPUs and uses a PCI Express 3 x16 connection.  It was released in 2012.  You can still buy one but it will set you back $2,000.  I've ended up buying a GTX970 in a new custom computer and this end of life cycle machine cost me about the same.  Heck, If I can trust Game Debate the GTX970 I bought as a 51% improvement over the Tesla K20, at least for games.

The current hot ANNs are called Deep Convolutional Neural Networks.  ImageCast is a very good example of 2012 cutting edge.  The paper says: "Our network takes between five and six days to train on two GTX 580 3GB GPUs. All of our experiments suggest that our results can be improved simply by waiting for faster GPUs and bigger datasets to become available." and I believe they were right.  I'll find out soon.

I'm a bit concerned about the various PCI Express implementations.  If I'm understanding what's going on correctly neither the motherboard, the processor, nor the GPU are using the PCI Express 3 connectors efficiently.  I say this because many YouTube videos compare the x4, x8, and x16 slot performance, showing the difference isn't all that much.  The Z97 motherboards can only handle one card at x16 and if you put in a second card both get downgraded to x8.  The X99 motherboards can handle two cards at x16 and one at x8 or four at x8 provided you get a 40 lane CPU .  The X99 motherboard, processor, and DDR4 memory is just too expensive right now and even if it wasn't as long as the video cards aren't using the x16 efficiently it doesn't really matter. 

I may drop in a second GPU depending upon video performance while training a network but I'll likely wait awhile.  Another couple of years and the X99 will be cheap.  By that time I'll know if cuDNNs are working well enough I won't get frustrated.

Saturday, June 28, 2014

Overcoming DNA test errors.

I'm investigating my assumptions here and will follow up soon.

I recently learned sequencing machines have a 1% error rate.  That means out of the 700,000 or so identified SNPs in the Ancestry.com DNA tests about 7,000 of them are incorrectly identified unless the testers have taken steps to validate inconsistencies or the published error rates are out of date.  Even a .01% error rate would be 70 errors or just under 2 per chromosome.

Right now the tested people have no way to challenge and get obvious errors corrected.  It calls into question my supposition about how moderate, low, and very low confidence levels are determined.  I may have to actually look at my sister's and parents' DNA results.

On some of the matches with hints, meaning both tested individuals are identified in trees and both trees mention the same individual as an ancestor of the tested individual in the tree,  the confidence levels for my sister and I are higher than for my mother.  That doesn't make sense since my relationship to my cousins passes through one of my parents so the confidence level for mother should never be lower than mine once we're looking at a single chromosome to identify an individual as a cousin.

While there is a non-zero probability that my sister and I would share exactly the same mutation that undoes a mutation away from the ancestor's sequence it's much more likely our mom's DNA test has a sequencing error and the SNP is misidentified in her test.