Friday, March 28, 2008

Another short update

I've now moved into the company dorm at Sony. Fortunately, I lucked out and got a room in the newer dorms and have a fairly spacious room. The rent I pay is $160/mo for the room plus $20/mo for the water and electricity is metered, so I expect to be paying about $220/month in total.

The starting salary for new grads in Japan is quite low where most people make approximately $30k/year. I hear, though, that salaries rapidly increase over several years to be on par with salaries in developed countries. I will be looking to see how things turn out on the financial end.

Laptop Woes:

It has been over a month since my ACER laptop has broken down. With the warranty being 1 year out of date, I am now running on the extended warranty I purchased. Customer support without the original warranty is terrible.

I have so far sent my laptop for repairs at the original store (Yodobashi), with them estimating a 3 week turn around for the laptop and that repair costs up to $850 will be covered. I know that my laptop has a motherboard problem and the last time I checked was that repairs was in the $600-$700 range. After 3 weeks of waiting, they finally quoted me with a repair bill of $1200 and that I would have to cover the additional $350 extra over the $850 coverage.

This is, of course, complete and utter bullshit.

I went to great lengths to figure out what company they sent my laptop to and requested that they give me the contact number so I can figure out why the repairs cost so much. Yodobashi refused my request and told me that they would relay my message to them and they also told me that laptop parts were expensive to justify the tepid explanation of the cost. I was furious.

I would have loved an audio copy of the conversation just to show how ridiculous the situation was. And at first, they told me that if I did the repairs anywhere else that I would be on my own, they've since reversed that position and that I would get store credit for the costs of the repairs.

When it comes to customer report, I am now going to take the stance of recording my calls using external software through Skype to have concrete evidence if I need to make a complaint. It's much better than just making arguments based on hearsay.

I have since sent out an e-mail to the ACER guys in Japan to get a quote on the repairs a few days ago and have yet to hear from them. The computer has been out of operation for over a month now and I am quite annoyed about it. Has this computer been a desktop, I'd have it up and running within a few days for a fraction of the cost.

Laptops are useless if they aren't reliable and repair fees are exorbitantly expensive. It would be very nice to have a website that could rate the reliability of the laptop sold to help the average consumer out on choosing a good company to buy from.

On another note:

The moving company that shipped my scooter from Sendai to Kanagawa busted something with one of my brake handles and I have no front breaks for the time being. I am going to have to get that repaired and see if the moving company can have it covered.

Ugh... headaches.

Wednesday, March 26, 2008

A short update

It's been a little while since the last post. This post will be a random mish-mash of topics.

Moving:

Moved out of Sendai to Kanagawa in preparation for working with Sony. Will have a physical check tomorrow and I think my belly has gotten a little bigger this month as a result of lots of eating out with friends (farewell parties).

Moving is a bit of a pain and it amazes me with how much stuff I have. After traveling for 3 months I definitely want to cut down on personal belongings to the essential (stuff I use often). The rest just clutters up the room and I find that I lead a more focused life when I restrict myself to only having the essentials for what I want to do.

Stock Market:

The US is going to go into a recession. The FED is eventually going to run out of space with their interest cuts and will have nowhere to run. They are just prolonging this slow decline. I recommending holding gold and minimizing your USD unless you're good at investing in this climate, either finding companies that thrive or good stocks to short sell.

Prediction Market:

I've also started getting into the prediction market with contracts $700 bet for a $300 return that Obama will win the Democratic nomination and contracts at $290 bet for a $130 return for a US recession by the end of this year.

Friday, March 14, 2008

Rescinding the CPU+GPU argument

Andrew and I have been having quite an interesting discussion through the comment section of the the last article about the future of CPU+GPU processing and I have been taking a much closer look at the topic over the last few days to develop a better understanding. What I have found out so far has led me the opposite conclusion of my previous article, that there will not be big benefits from the CPU+GPU combination in terms of processing power.

I have taken a closer look at CPU and GPU issue closer and have come to the realization that a CPU+GPU combination is likely a bad combination, unless one is designing system on a chip (SoC) processors for embedded or portable systems, though I expect the performance characteristics for these devices to be far less powerful compared to the desktop variant.

The main reasoning behind this realization is the high memory bandwidth demands most GPUs have for rendering frames. The memory used in most video cards consist of high performance RAM; of either DDR2 or the more expensive GDDR3 (5.6~54.4 GB/sec) or GDDR4 (64~156.6GB/sec) variants. The necessity for such high bandwidth is a the nature of graphics rendering where large datasets including textures, skins, masks are stored in memory and often pasted or multiplied onto a surface, not to also mention 3D geometry transformations as well. It is thus very necessary for a very parallel GPU to have fast access to the memory to perform a variety of calculations to render a 3D environment. This level of bandwidth is generally not achievable on your standard motherboard front-side-bus (FSB).

To get an idea of this problem, one simply needs to look at the amount of bandwidth the FSB provides, somewhere in the ball park of 4 GB/sec for a Hyper Transport 2 specification on an AMD based motherboard (I expect about the same performance on an Intel based chipset). The bandwidth provided by the FSB pales in comparison of the data bandwidth of a video card. This is also a core reason why integrated graphics processors on a motherboard fare so poorly when it comes to 3D rendering.

The obvious solution to this problem is to provide these integrated graphics processors access to a specialized memory controller and high speed RAM to to counter this problem, however I expect that incorporating this hardware into the motherboard will increase complexity and cost easily by $50 to $100, which may make a motherboard look incredibly expensive to a purchaser. There is also the problem of the on board graphics hardware becoming obsolete and therefore useless when the user ends up buying a plug-in video card to maintain parity with the demands of new 3D software.

There are possible workarounds for this problem as both ATI/AMD and Nvidia are working on their respective Crossfire and SLI platforms to allow paired video cards or even a video card + integrated GPU to work in conjunction to improve processing power. This technology is still in its infancy and it remains to be seen if significant improvements can be had by offering this as a possible upgrade path.

On an interesting note, I have been thumbing through the bandwidth capacities of various components in a computer while looking at this topic and I will summarize what I've noticed so far (this information is accessible from wikipedia at its list of device bandwidths page):

FSB: 4GB/sec (up to 22GB/sec, future)
PCIe 1.1: 250 MB/sec for each channel. One device may have up to 16 channels or 4GB/sec
PCIe 2.0: 8 GB/sec (16 channel), 16 GB/sec (32 channel)

RAM:
For DDR2 800, 1000MHz (dual channel): 12.8GB/sec ,16.0GB/sec
For DDR3: 21.2 GB/sec ~ 25.6 GB/sec

HD BUS:
For UDMA 133: 133MB/sec
For SATA 150, 300: 187.5 MB/sec, 375MB/sec

HD devices:
For Solid State Drives: 170~300 MB/sec read, 105 MB/sec write
For Normal Hard Drives: 44.2 ~ 1114 MB/sec (depending on RPM and location of read)

DVD Drive (16x): 21.1 MB/sec
USB 2.0: 60 MB/sec

So what does this all mean? While looking at this data, it becomes very apparent to me that the bandwidth for RAM and FSB is quite sufficient for current computational applications. I find it rather unlikely that the average user will come close to maxing out this bandwidth unless doing very intensive simulations or gaming.

However, it becomes quite apparent that the main bottleneck of most computer systems lies with the mass storage components of the computer, mainly the hard drive with read and write times 2 orders of magnitude slower compared to the faster RAM and FSB. The solid state drive is obviously much faster than your standard HD but it still lags far behind to what the rest of the computer can handle.

When considering this, it becomes easy to understand why it may take upwards of a minute to boot up your computer. Assume that your OS has 3 GB of files to read and your HD can put out an average of 50 MB/sec. This alone will take approximately 60 seconds and as a result, the hibernate feature has become an attractive feature compared to completely shutting down the computer-- most of the data is left in RAM, thus removing the need to reload everything from HD.

Thus, I do not see any major advantages to be had for GPU+CPU integrated chips on desktop systems. Even if GPU+CPU combinations are putout, it will be necessary to incorporate a dedicated memory controller memory for the GPU, which might be better off accomplished on a separate video card. The GPU+CPU combination may be useful in portable devices, though I highly doubt that the GPU in this case will be doing any high performance rendering. A second possible application for the GPU+CPU combination might be in research applications using Stream calculations as seen at the folding@home project. Researchers at Harvard have shown that GPUs are 20 to 40 times faster at processing their data sets as compared to a normal CPU. A large cluster of GPUs or GPU+CPUs in these research endeavors may be incredibly useful, though I would think the market for these computers might be small.

As of this moment, I think the best performance gains are to be had from developing much faster mass storage devices. As a result, I will most definitely be pursuing a computer with a more modest CPU and going after a dual HD system in a RAID 1 setup, offering me data redundancy and better HD read throughput.

Tuesday, March 04, 2008

The Future of Computing: Integrated GPU and CPUs

For those that might not be as well versed in the realm of computer lingo, a general processing unit (otherwise known as a GPU) is the heart most video processing devices. Its difference from a CPU is its ability to run several processes in parallel compared to a CPU that runs a single process at a time but very quickly.

The GPU differs from the CPU as a result of application, where the CPU is designed to run single program quickly versus a GPU that is used at performing many calculations simultaneously to render graphics on a computer screen. What we will be seeing in the future is a merging of these two chips into a single processing unit and the company that is probably the best suited for this is likely AMD should they work out the kinks in their merger with ATi.

Several years ago, the computer industry was obsessed with improving computer speed by ramping speeding up the CPU clock cycle, or the number of calculations a single set of computer circuitry can handle per second. Unfortunately, further advancements in this area provides diminishing returns as CPUs require more power the faster they operate, which is something undesirable considering that many CPUs are now being used in battery operated Laptops. In addition, it is also becoming increasingly challenging to continually push the clock speed faster. So what the computer industry has done instead is go through a simpler route; the integration of several processing units into a single silicon package to reap further performance gains. This is possible due to patterning technologies allowing makers such as AMD and Intel make smaller and smaller CPUs making it cheaper to design chips with several integrated processors on a single chip, resulting in multi-core CPUs being currently sold on the market. I believe that this trend will change in the coming years.

A new revolution in computing devices is occurring with a push to smaller and more portable computing systems. My previous post covered touched lightly on the growing trend of ultra-portable computers-- expect to see more of them in the future. With computers moving in this direction, there will be a need for tighter integration of computer parts to achieve further miniaturization. I have covered this before in a previous post but will reiterate some of the important points here.

Components for both desktops and laptop computers are made of discretized parts. In the desktop case, the computer parts consist of modular cards that can be swapped into a mainboard. If you want a new video card, simply buy a newer version and swap the parts. Laptops, on the other hand, do away with the modular design to focus on integrating the video, sound and networking chips onto a single mainboard for a compact design. This miniaturization will continue, but this time will occur on the silicon chip level as opposed to the circuit board level and I believe that simply adding more processor cores to a silicon die is the wrong solution.

I predict that the next leap in processing technology will be the integration of a CPU and a GPU core onto a single die. I believe that this will be a very big step in the development of smaller ultra-portable hand-held computing devices.

The CPU and the GPU are the most computationally intensive chips in a computer system, quite often with the CPU continually communicating with the GPU to render graphics on to a computer monitor. A communication lag exists between the CPU and the GPU as a result of current computer design architecture. The following graph illustrates this issue:


The northbride/southbridge configuration of a computer (source: Wikipedia)

Computer chips and peripheral devices are connected using memory controller chips, otherwise known as the northbridge and southbridge chips. Data between devices flows between data lines, otherwise known as a "bus." Video cards, as a result of the amount of data they continually process are generally given a fast bus to allow the video card to transfer data quickly between the CPU or on-board RAM (which is not often as most video cards come integrated with their own RAM). Unfortunately, the data transfer limitation of the bus between the CPU and GPU is a bottleneck, especially for high resolution 3D rendering as sufficient data cannot reach the GPU quickly enough, sometimes resulting in choppy video at higher resolutions. The obvious solution is the tighter integration of the CPU and the GPU together resulting in superior data transfer rates and processing capabilities. The combination of these chips would also remove the need for a northbidge chip, thus simplifying the computer architecture further.

There are also other advantages to having a GPU core integrated with a CPU. Primarily for the reason that a GPU is a parallel processing unit, though somewhat slower than a CPU. Most operating systems operate using several concurrent processes running at the "same time." In reality, this is because the CPU operates very quickly; it rotates between running these processes giving the illusion that it does these things at the same time. Unfortunately, this is not an ideal solution because the computer must either save it's memory of what it was doing and for one process while it switches to another process. This memory swapping business is what often slows down computers running many concurrent programs. However, this is fine for processes with some little time lag; so that it can run off and do something else while it waits for data or commands to arrive.

Unfortunately, in other cases, this might not be possible when multiple processes require continual CPU attention and since a CPU has the equivalent of a one track mind, it becomes advantageous to have other computing components to deal with these continual demands. This is originally why discrete chips were often used for specialized functions including video, sound and networking. Enter the GPU, the silver bullet.

Because of the parallel design of the GPU, integration of a chip like this in addition to the CPU will allow for significant performance benefits, allowing a computer to handle more processes simultaneously while having a main CPU for computationally intensive processes. The GPU in it's current state could replace the sound chips with all processing done directly by the GPU. This is advantageous since sound and video often go hand-in-hand in video applications.

This design mirrors the architecture of the human brain and body as it should be no surprise that our sense of sight, hearing and taste are kept close to the brain reducing the lag time in processing and responding to important sensory data quickly. The sense of touch is somewhat different since it encompasses the whole body, but it is interesting to note that the body has a spare processor in the spine for reflex responses from sudden dangerous touch responses.

The future of computing will go in this direction and the integration of multi-core CPUs are a crude step in this direction-- expect more eloquent GPU-CPU chips to come out in the next few years with solutions in the works from both Intel and AMD.

I believe AMD is in the best position to accomplish this after acquiring ATi and it's portfolio of design expertise in developing video card technology. Unfortunately, the merger is not going very well at the moment, causing AMD to stumble. AMD's current offering of CPUs are somewhat inferior compared to Intel's offering in terms of maximum computational power, but AMD offers a better price/performance compared to Intel chips. What I am certain of is that Intel has limited design experience with their motherboard integrated video chips as they provide the poorest performance when compared against ATi and Nvidia's solutions. As Nvidia currently does not have the same close working relationship with Intel as ATi has with AMD, I doubt that and Intel-Nvidia CPU-GPU combination will be produced in the near future unless AMD-ATi dominates the market with their offerings.

The target for AMD's new CPU-GPU chips will most likely be for the growing mobile computing market segment and I believe this to be the wisest move. The next few years in computing technology will be quite interesting.

Cheap computers will not be good for Microsoft

Earlier I made some predictions on the future of computing, with the rise of ultra portable systems last year in August. That prediction came to fruition late last year with the release of the EEE PC (my short review) and then Apple's Air.

With every passing year, computing technology advances with incredible leaps and bounds, pushing the envelope of performance upwards and the cost of a computer unit considerably down. We are now entering a phase where computers are becoming ultra-cheap. The EEE PC sells for approximately $400 for a "7 portable computer. Basic bare-bones desktop systems can be had for as low as $225 and there is going to be more of this in the future. One thing is obvious to me with these prices in mind, Microsoft and it's Windows platform is going to be in trouble over the coming years. The point I make should be obvious when I start talking about the price of Windows.

"The price of Windows!? Since when was the last time did anyone buy Windows?" might you wonder. For the most part, most people do not make a conscious decision to buy Windows, but Microsoft's business model is partly based on earning revenues from OEM computers with a pre-installed version of Windows. Current prices of windows online indicate that the cheapest version of Win XP goes for a price tag of $99 and the more expensive Windows Vista goes for $140 to about $190 depending on the flavor of Vista you get.

Before when the cheapest computer systems ran for at least $1000 the price of the included OS for approximately $100 was not very noticeable and most people just gritted their teeth and bit the bullet when making a computer purchase. However, things have now changed. As prices for a complete system hit in the sub $400 range, it is apparent that the relative price of the operating system has balloned into the ballpark of 20%-50% of your computer purchase. This will be unacceptable to a consumer considering their options.

Consider the following. A $300 system with a $100 (minimum) Windows OS for $400 total compared to the same computer with a Linux operating system (costing $0) for $300 total. I think that many people will now start thinking twice before buying a computer with Windows. In addition, I also believe that computer vendors are going to be very conscious about the competitive price point and will likely start dropping Windows in the ultra-cheap computer market segment. Microsoft will invariably have to reduce the relative price of their operating system to stay viable while taking a hit to profits. The only thing they have going for them at this point is the familiarity of their operating system vs Linux or Apple's OSX acting a barrier keeping the Windows market segment alive; but even this will be eroded with time.

For those of you not very familiar with Linux and it's capabilities, I recommend that you take a chance to check out the power of a Linux desktop. The compiz fusion desktop is very impressive, though still in development. Though this desktop is somewhat computer resource hungry as it is beautiful, there are plenty of other configurations that will allow a cheap computer to run with ease. All of this software and the majority of applications can be had for free.

With my recent troubles with laptops, I will definitely be investing in at least one desktop system (and perhaps a second cheap system to experiment with Linux). Linux will be making its way into the mainstream. It is only a matter of time.