Skip to main content
corrected spelling
Source Link
ChrisF
  • 39k
  • 11
  • 129
  • 169

It had been very important in my prior life as a supercompuer guru. Back then I felpfelt you didn't understand a machine until you had written at least several hundred lines of assembler, and tinkered with it trying to squeeze out performnaceperformance. As very few programmers wanted to go that deep, it made me really indispensibleindispensable. And I still have a common language when talking with HW designer types.

But, really the need/benefit for this is mostly a couple of decades past. betweenBetween compiler advances, and advanced out of order execution HW there is very little scope for being able to play the hero by writing assembler anymoreany more. Although I think it useful to understanding how things work. I plan on teaching my kids (freshmen CS majors) to program in a very simplified assembler on a simple virtual machine, just so they have afeela feel for what goes on. Hopefully we can play with stuff like unrolling, software pipelining, caches, and prefetching, bottom loading etc. So at least they will know that at some level this stuff is going on.

It had been very important in my prior life as a supercompuer guru. Back then I felp you didn't understand a machine until you had written at least several hundred lines of assembler, and tinkered with it trying to squeeze out performnace. As very few programmers wanted to go that deep, it made me really indispensible. And I still have a common language when talking with HW designer types.

But, really the need/benefit for this is mostly a couple of decades past. between compiler advances, and advanced out of order execution HW there is very little scope for being able to play the hero by writing assembler anymore. Although I think it useful to understanding how things work. I plan on teaching my kids (freshmen CS majors) to program in a very simplified assembler on a simple virtual machine, just so they have afeel for what goes on. Hopefully we can play with stuff like unrolling, software pipelining, caches, and prefetching, bottom loading etc. So at least they will know that at some level this stuff is going on.

It had been very important in my prior life as a supercompuer guru. Back then I felt you didn't understand a machine until you had written at least several hundred lines of assembler, and tinkered with it trying to squeeze out performance. As very few programmers wanted to go that deep, it made me really indispensable. And I still have a common language when talking with HW designer types.

But, really the need/benefit for this is mostly a couple of decades past. Between compiler advances, and advanced out of order execution HW there is very little scope for being able to play the hero by writing assembler any more. Although I think it useful to understanding how things work. I plan on teaching my kids (freshmen CS majors) to program in a very simplified assembler on a simple virtual machine, just so they have a feel for what goes on. Hopefully we can play with stuff like unrolling, software pipelining, caches, and prefetching, bottom loading etc. So at least they will know that at some level this stuff is going on.

Source Link

It had been very important in my prior life as a supercompuer guru. Back then I felp you didn't understand a machine until you had written at least several hundred lines of assembler, and tinkered with it trying to squeeze out performnace. As very few programmers wanted to go that deep, it made me really indispensible. And I still have a common language when talking with HW designer types.

But, really the need/benefit for this is mostly a couple of decades past. between compiler advances, and advanced out of order execution HW there is very little scope for being able to play the hero by writing assembler anymore. Although I think it useful to understanding how things work. I plan on teaching my kids (freshmen CS majors) to program in a very simplified assembler on a simple virtual machine, just so they have afeel for what goes on. Hopefully we can play with stuff like unrolling, software pipelining, caches, and prefetching, bottom loading etc. So at least they will know that at some level this stuff is going on.