IT界討論區(58) 唔講上一份人工

1001 回覆
6 Like 0 Dislike
2019-03-06 10:52:29
2019-03-06 10:52:50
2019-03-06 10:54:16
- compiler flag tuning, PGO可以睇下gcc或llvm manual。JIT同改compiler就可以睇llvm tutorial。
- kernel tuning都係睇係Linux HOWTO,網上tutorial
- vectorization要睇ISA跟住搵D programming仔自己識下,intrinsic/assembly都係差不多。
- algorithms要case by case,例如如你要做video encoding就搵有關paper同書去睇,好多是唔洗明晒,知道點implement okay。普遍嚟講玩algorithm數底好有著數,得閒讀下數學。
- memory tuning最好要識computer architecture,知到cache hierarchy,cache consistency protocols,memory ordering,SMP/NUMA。
- locking 都係睇書,睇係人地project source code。
- I/O 都係
- FPGA可以買塊board返嚟學verilog/vhdl,而家幾十蚊USD有得玩。

我自己好多係工作需要邊做邊學,例如vectorization。不過我本身係system programming底,寫過好多唔同CPU嘅 assembly。好多時睇下sample code同document就得。
2019-03-06 10:58:52
2019-03-06 11:00:22
2019-03-06 11:01:06
computer architecture應該U有教。Standard undergrad教科書:
https://www.amazon.com/Computer-Architecture-Quantitative-Approach-Kaufmann/dp/0128119055

algorithms,maths都係:
https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844

compiler其實都係undergrad有教:
https://www.amazon.com/gp/product/0321486811/

你未必識晒上邊low level tuning嘅野但係一個三或四年嘅CS或有關學位應該會打好過底去pick up工作上嘅野。
2019-03-06 11:02:05
I guess low level tuning require how everything works in low level bit by bit, what’s the best way to get involved? (Other than getting hired to do such job )
2019-03-06 11:02:19
2019-03-06 11:03:09
2019-03-06 11:03:41
2019-03-06 11:04:06
呢啲其實都冇睇過,正如你講學校都有教吓,但係我個課種唔夠 Hands on 我比較需要 Practical 去學嘢 所以想知有冇方法可以「邊玩邊學」
2019-03-06 11:04:34
想自己玩呢啲要點入門?開個GitHub Project自己搞個冇特點嘅Langauge?🤔
computer architecture應該U有教。Standard undergrad教科書:
https://www.amazon.com/Computer-Architecture-Quantitative-Approach-Kaufmann/dp/0128119055

algorithms,maths都係:
https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844

compiler其實都係undergrad有教:
https://www.amazon.com/gp/product/0321486811/

你未必識晒上邊low level tuning嘅野但係一個三或四年嘅CS或有關學位應該會打好過底去pick up工作上嘅野。
呢啲其實都睇過,正如你講學校都有教吓,但係我個課種唔夠 Hands on 我比較需要 Practical 去學嘢 所以想知有冇方法可以「邊玩邊學」
2019-03-06 11:05:35
2019-03-06 11:07:28
2019-03-06 11:07:30
open source projects。睇人地code,自己改下,幫下手寫patch。有D有錢收添:
https://www.bountysource.com/
2019-03-06 11:11:25


所以搵啲實物搞吓撞吓板最實際
2019-03-06 11:13:01
呢啲會唔會高門檻 🤔
2019-03-06 11:13:59
其實你可以買塊rapsberry pi返黎自己寫kernel
上網好多open source kernel
對住黎做
有實物玩你學得快好多
2019-03-06 11:15:06
Just play with your computer. For example, you can do simple assembly programming and learn about instruction set architectures and application binary interface. You can also get a cheap cheap FPGA board to learn about verilog programming. There are tonnes of free lessons and tutorials on the internet these days

All my knowledge has been accumulated over a long long time in my hobby, in my studies and in my jobs. I started assembly programming at 14 on an Apple II clone. I had learnt about registers, memory address, stack and memory mapped I/O well before I entered a uni.
2019-03-06 11:15:44
有道理,我早排睇過,想幫個熱水爐 Program 搖控,儲水式太仆街

Real life problem
Modern issue with modern solution
2019-03-06 11:17:18
14... my 14 I was a script kiddie lel

Thanks I ll look into it
2019-03-06 11:19:07
raspberry pi 好玩我有3部。ARM嘅memory model比x86弱,學concurrent programming好(例如C++ std::atomic應用)。
2019-03-06 11:20:41
有好多open source project。如果覺得未夠能力去做其實都可以睇人地source code同document姐。
2019-03-06 11:53:57
GPU例如CUDA我都未玩過。SIMD寫過好多。而家用SIMD一係人手寫compiler intrinsics,gcc/llvm重有vector extension。另一個方法係靠compiler做auto vectorization。

無乜特別入門方法,我都係邊學邊做,睇下doc,port下人地D code咁。
我有時係人手vectorize scalar code,又有時係有一個CPU嘅SIMD port去另一個CPU嘅SIMD。
2019-03-06 12:03:09
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞