LoadAverage
  • Login
  • Public

    • Public
    • Groups
    • Popular
    • People

Conversation

Notices

  1. ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:04:02 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
    Remote profile options...

    interesting article. good one.
    [C Is Not a Low-level Language. Your computer is not a fast PDP-11. 2018-04-30 By David Chisnall. At https://queue.acm.org/detail.cfm?id=3212479 ]

    In conversation about a year ago from mstdn.io permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:11:13 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      esr wrote a follow up thought with respect to golang. to read.

      [Embrace the SICK 2018-05-09 By Eric Raymond. At http://esr.ibiblio.org/?p=7979 ]

      In conversation about a year ago permalink

      Attachments

      1.  
        Embrace the SICK
        By esr from Armed and Dangerous
        There's a very interesting article just out, C Is Not a Low-level Language;. in which David Chisnall punctures the comforting illusion that C is really a "close-to-the-metal" language and relates t...
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:16:16 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      so, in recent years, i became more aware that programing lang or any algorithm REQUIRES a machine to work with. This is the CPU design. this is fascinating. what machine u have changes the nature of ur lang entirely. it also changes the profile of efficiency n type of tasks.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:19:25 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      if you are writing pseudo code, or hand waving in theory, you no need machine. but as soon you actually do compute, a painstaking nittygritty lang becomes necessary, and, an actual machine the lang is to to work on.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:27:25 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      the design of a machine dictates what your lang's gonna be like, and what kinda tasks it does well. e.g. lisp had lisp machines. Java talked bout java cpu ~1999. (note java runs on Java VIRTUAL MACHINE, which in turn is translated to actual machine).

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:27:54 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      Turing tape, formal lang, automata, are abstract concrete machines. Integers, or set theory, are also abstract concrete machines, that math works on. As soon as you talk about step by step instruction (aka algorithm), you need a machine.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 18:33:27 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      abacus is a machine. babbage's difference engine is a machine. 5 stones on sand, is a machine. 10 fingers, is a machine.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 19:00:01 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      virtual abstract machine is easy. But actually running hardware, we have fingers to stones to metal cogs n wheels to vacuum tubes to solid state transistors to printed circuits to incomprehensible silicon die. and there is dna n quantum machine

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Thursday, 04-Oct-2018 19:04:20 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      if we just think about cpu/gpu of current era. there are lots designs aka architectures. i dunno nothing about this, but the question is, what are the possible designs, pros n cons, what are the barrier to new design, how it effect the language and computing tasks we do today.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 11:26:28 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      a machine, can be abstracted into “Instruction Set Architecture”. i.e. a set of instructions. These makes up a machine language, the lowest form of programing language. Each instruction do things like move this stone over there, or put this number here, add 2 numbers, etc.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 11:39:05 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      one example of Instruction Set Architecture (ISA), is the x86 instruction set. Given a ISA, there can be many diff implementation in hardware. A design of such implementation, is called microachitecture. it involves the actual design and make of the circuits and electronics.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 11:43:58 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      so now, there r 2 interesting things bout designing a machine to run comp lang. 1 is Instruction Set Architecture, n sub to it is so-called microachitecture, which is the actual design and building of the machine, with restrains of electronics or physical reality.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 11:48:07 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      for our interest about programing language design and its bondage by the design
      of hardware it runs on, the interesting thing is
      Instruction set architecture. see
      https://en.wikipedia.org/wiki/Instruction_set_architecture
      and learn about CISC RISC other design issues.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 11:58:51 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      i guess, design of cpu, has as much baggage as comp lang of human habit. 4 lang, it has to wait till a generation die off. For cpu, the thing is corp power struggle to keep (their) design stay put, and hard barrier to entry. (of course, there is also backward compatibility, for both)

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 12:19:14 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      so now when we see programing language speed comparison, we can say, in fact technically true, that it's not because #haskell or functional programing are slower than C, but rather, the cpu we use today are designed to run C-like instructions.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 15:11:15 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      • walipini air: breathe

      @coveb you delete your post after 24 hours?

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Friday, 05-Oct-2018 15:15:38 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to
      • walipini air: breathe

      @coveb my first lang is the hp-28s
      http://xahlee.info/prog/hp28s/hp28s.html

      I heard forth, but never looked into.

      just from guessing, i thought it'd be strange for full lang (like today's standard) to use a stack as in HP calculator. because, stacks is fine as data structure, but hard to use, as one has to push pop or swap constantly... i imagine, Forth is not like the lang on HP calcs, cuz that seems too primitive? maybe at the time it's not, like Basic?

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 01:11:07 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      apparently, there is a completely different cpu design, 1980s, called Transputer. The lang for it is occam. very nice. The lang is more tight to the cpu than C is to x86 chips. thx to @mmzeeman

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 01:16:07 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      a good ram chip will sometime flip a bit, due to cometic ray. This is partly why, Error-correcting code memory (ECC memory) is invented. ECC is used in intel xeon chip. xeon is x86 compatible but with added niceties such as ecc, more core, more ram cache etc.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 01:23:18 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      in this foray of relations of algorithm and machine, i learned quite a lot things. many familiar terms about cpu: ISA x86 XEON CISC RISC MIPS FLOPS ecc superscalar, instruction level parallelism, now i understand.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 20:09:51 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      before, whenever new chip comes into pop product, such as Apple switching to PowerPC in 1994, then to Intel in 2006, or the arm cpu in smartphones, i read that all software needs to be rewritten. was always annoyed and shocked, and don't know why. now i know.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 20:13:12 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      because: algorithm is fundamentally meaningful only to a specific machine. Note, new cpu design (aka instruction set architecture) will be inevitable. That means, all software, needs to be rewritten again. (practically, needs to be recompiled. the compilers need to be rewritten. it may take years to mature.)

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 20:31:05 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      what if we don't rewrite instead rely on a emulation layer? A magnitude slower! That's why, IBM Deep Blue chess had its own dedicated chips, audio want its own processor (DSP), Google invent its own cpu for machine learning. and vid games need GPU.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 20:40:23 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      back in 1990s, i see some SGI machine demo of its 3d prowess. Or some graphics cards. But when rendering 3D raytracing , it has 0 speedup. I thought wtf? how is it possible, some $fantastic$ graphics machine yet useless when rendering 3d? was a great puzzle to me.

      In conversation about a year ago permalink
    • Jeremiah™ (jeremiah@noagendasocial.com@noagendasocial.com)'s status on Saturday, 06-Oct-2018 20:46:40 UTC Jeremiah™ Jeremiah™
      Remote profile options...
      in reply to

      @xahlee Blender (and presumably some other tools) can take advantage of CUDA to leverage the GPU.

      I know of a compiler hosted in GPU, and I've read about projects using GPU for text searching / text operations -- like DB matching.

      The problem is the as always: idiots doing as little as possible, with no sense of grace or elegance (or pride) in their code and results.

      https://en.wikipedia.org/wiki/CUDA

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 20:48:46 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to

      the tasks GPU is designed to do is in general different from raytracing 3d scenes. Video processing, 3d graphics, 2d graphics, n other comp in video games, actually are diff math computation. They r all ~ linear algebra, but the specifics a chip is designed for is big diff.

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 20:53:16 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to
      • Jeremiah™

      @jeremiah wasn't it a modern advance, to actually use gpu to do general computation? ...

      i still don't understand fully, how exactly gpu diff from cpu, or why can't cpu be just gpu, or how exactly one use gpu to do general comp. I know the basic principles... but i think one'd need to dip into actual experience in designing chips, or writing specific compilers.

      In conversation about a year ago permalink
    • Jeremiah™ (jeremiah@noagendasocial.com@noagendasocial.com)'s status on Saturday, 06-Oct-2018 20:54:42 UTC Jeremiah™ Jeremiah™
      Remote profile options...
      in reply to

      @xahlee On the abstract level, it's another architecture -- but to get specific -- it's an architecture that is specialized to do very specific kinds of jobs. There happens to be lots of them, giving them sort of "mutant powers" relative to a normal CPU, and limitations (they're not meant to be a CPU, of course.)

      Read up on CUDA. If you're interested, I'll dig up some other stuff for you.

      In conversation about a year ago permalink
    • Jeremiah™ (jeremiah@noagendasocial.com@noagendasocial.com)'s status on Saturday, 06-Oct-2018 21:06:58 UTC Jeremiah™ Jeremiah™
      Remote profile options...
      in reply to

      @xahlee also think of the history of GPU. First, that meant something that did blitter, sprites, high speed ops to offload tedium from 7-100mhz CPUs -- look at old Amiga's custom graphics chips as the final phase of this evolution.

      Then came the "graphics pipeline" -- that was the idea that SGI engineered. That created the OpenGL standard (and hardware protoform) that became the accelerated _3D_ graphics we knew in the late 90s.

      Today, GPU is super MMU, multicore 3D + video processing + 2D...

      In conversation about a year ago permalink
    • ∑ Xah Lee 李杀 (xahlee@mstdn.io)'s status on Saturday, 06-Oct-2018 21:08:20 UTC ∑ Xah Lee 李杀 ∑ Xah Lee 李杀
      Remote profile options...
      in reply to
      • Jeremiah™

      @jeremiah just read CUDA , just the 1st paragraph yet. It made so much sense now!
      basically a API to the GPU! ... ah, so, from a programer point of view, that's how one uses gpu for general computation!

      In conversation about a year ago permalink
    • Jeremiah™ (jeremiah@noagendasocial.com@noagendasocial.com)'s status on Saturday, 06-Oct-2018 21:09:05 UTC Jeremiah™ Jeremiah™
      Remote profile options...
      in reply to

      @xahlee ... that's how one does it relatively easily. Before that, it was like graphics card hacking, but people were doing it (to my knowledge) as early as 2004. CUDA standard came out in 2007.

      In conversation about a year ago permalink
    • Jeremiah™ (jeremiah@noagendasocial.com@noagendasocial.com)'s status on Saturday, 06-Oct-2018 21:09:27 UTC Jeremiah™ Jeremiah™
      Remote profile options...
      in reply to

      @xahlee ... that's how one does it relatively easily. Before that, it was like graphics card + driver hacking, but people were doing it (to my knowledge) as early as 2004. CUDA standard came out in 2007.

      In conversation about a year ago permalink
    • petit (petit@social.ufeff.club@social.ufeff.club)'s status on Saturday, 06-Oct-2018 23:09:12 UTC petit petit
      Remote profile options...
      in reply to
      • Jeremiah™
      @xahlee @jeremiah If you want to understand digital logic, there's no substitute for designing it. Hardware Description Languages, like Verilog, can be used to design digital hardware. If you get tired of software tests or want to take advantage of hardware speed, you can even load your design into FPGAs, a kind of programmable hardware.

      http://iverilog.icarus.com/
      In conversation about a year ago permalink
      Jeremiah™ and ∑ Xah Lee 李杀 repeated this.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

LoadAverage is a social network, courtesy of maiyannah, xrevan86, pztrn. It runs on GNU social, version 2.0.0-dev, available under the GNU Affero General Public License.

CC-BY-3.0 All LoadAverage content and data are available under the CC-BY-3.0 license.

Switch to mobile site layout.