IT界討論區(58) 唔講上一份人工
一隻毒LIT狗 2019-3-6 10:52:29
:^(

Ads

Trinidad 2019-3-6 10:52:50
:^(
Code4Food 2019-3-6 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就得。
Trinidad 2019-3-6 10:58:52
:^(
實驗羊 2019-3-6 11:00:22
:^(
Code4Food 2019-3-6 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-3-6 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
:^(
)
Trinidad 2019-3-6 11:02:19
:^(
魔風使者 2019-3-6 11:03:09
:^(
Trinidad 2019-3-6 11:03:41
:^(
實驗羊 2019-3-6 11:04:06 呢啲其實都冇睇過,正如你講學校都有教吓,但係我個課種唔夠 Hands on 我比較需要 Practical 去學嘢 所以想知有冇方法可以「邊玩邊學」

Ads

實驗羊 2019-3-6 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-3-6 11:05:35
:^(
Trinidad 2019-3-6 11:07:28
:^(
Code4Food 2019-3-6 11:07:30 open source projects。睇人地code,自己改下,幫下手寫patch。有D有錢收添:
https://www.bountysource.com/
實驗羊 2019-3-6 11:11:25
:^(


所以搵啲實物搞吓撞吓板最實際
:^(
實驗羊 2019-3-6 11:13:01 呢啲會唔會高門檻 🤔
Trinidad 2019-3-6 11:13:59 其實你可以買塊rapsberry pi返黎自己寫kernel
上網好多open source kernel
對住黎做
有實物玩你學得快好多
Code4Food 2019-3-6 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-3-6 11:15:44 有道理,我早排睇過,想幫個熱水爐 Program 搖控,儲水式太仆街

Real life problem
Modern issue with modern solution
實驗羊 2019-3-6 11:17:18 14... my 14 I was a script kiddie lel

Thanks I ll look into it
:^(

Ads

Code4Food 2019-3-6 11:19:07 raspberry pi 好玩我有3部。ARM嘅memory model比x86弱,學concurrent programming好(例如C++ std::atomic應用)。
Code4Food 2019-3-6 11:20:41 有好多open source project。如果覺得未夠能力去做其實都可以睇人地source code同document姐。
Code4Food 2019-3-6 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。
等投胎窮三代IT狗 2019-3-6 12:03:09 人生第一個 open source
:^(

https://www.npmjs.com/package/@hongkongnoit/hongkongnoit