Upgrade to Pro — share decks privately, control downloads, hide ads and more …

最小限の実装で試す MetalによるGPUコンピューティング

yuky_az
February 15, 2017

最小限の実装で試す MetalによるGPUコンピューティング

potatotips #37 (iOS/Android開発Tips共有会)での発表に用いたスライドです。

yuky_az

February 15, 2017
Tweet

More Decks by yuky_az

Other Decks in Technology

Transcript

  1. ࠷খݶͷ࣮૷Ͱࢼ͢
    .FUBMʹΑΔ(16ίϯϐϡʔςΟϯά
    :VLJOBHB"[VNB
    [email protected][
    QPUBUPUJQT

    View Slide

  2. ࣗݾ঺հ
    :VLJOBHB"[VNB

    ʢզ࠺޾௕ʣ
    J04ΤϯδχΞϓϩάϥϛϯάΠϯετϥΫλʔ
    [email protected][
    J0%$Ͱ͸εϚϗ޲͚73ΞϓϦͷ։ൃʹ͍ͭͯൃද
    6EFNZͰʮΈΜͳͷ"*ߨ࠲ʯ։ߨத

    View Slide

  3. Metalͱ͸ʁ
    Φʔόʔϔουͷখ͍͞ϩʔϨϕϧͳ
    ίϯϐϡʔλάϥϑΟοΫε"1*
    0QFO(-ͱ0QFO$-ʹࣅͨػೳΛҰͭͷ"1*ʹ౷߹

    View Slide

  4. ࠓճͷൃද಺༰
    1. ඳըॲཧ
    2. ฒྻԋࢉ
    MetalʹΑΔ

    View Slide

  5. GPUฒྻԋࢉͱ͸ʁ
    GPUͷԋࢉϦιʔεΛը૾ॲཧҎ֎ʹར༻

    View Slide

  6. CPUͱGPUͷ࿈ܞ
    EFWFMPQFSBQQMFDPNNFUBM

    View Slide

  7. Metal CPUଆͷొ৔ਓ෺ 1
    .5-%FWJDF୯Ұͷ(16ͷΠϯλʔϑΣΠε
    .FUBMؔ࿈ͷ"1*͸ଟ͕͘ϓϩτίϧͰهࡌ
    EFWJDF.5-$SFBUF4ZTUFN%FGBVMU%FWJDF

    QSJOUEFWJDFOBNF"QQMF"(16

    View Slide

  8. Metal CPUଆͷొ৔ਓ෺ 2
    .5--JCSBSZγΣʔμʔ΁ͷΠϯλʔϑΣΠε
    .5-'VODUJPO.FUBM4IBEJOH-BOHVBHFͰॻ͔Εͨؔ਺
    .5-$PNQVUF1JQFMJOF4UBUF.5-'VODUJPOΛίϯύΠϧ͞Εͨίʔυʹม׵
    .5-$PNQVUF$PNNBOE&ODPEFSίϚϯυΛ(16༻ʹΤϯίʔυ
    .5-$PNNBOE#V⒎FS(16Ͱ࣮ߦ͞ΕΔίϚϯυΛ֨ೲ
    .5-$PNNBOE2VFVF্هͷΩϡʔɺίϚϯυͷ࣮ߦॱΛ؅ཧ
    .5-%FWJDF
    ੜ੒

    View Slide

  9. Metal Shading Language
    [email protected]
    VTJOHOBNFTQBDFNFUBM
    LFSOFMWPJEBEE0OF DPOTUEFWJDFqPBUJOQVU%BUB<<CV⒎FS
    >>
    EFWJDFqPBUPVUQVU%BUB<<CV⒎FS
    >>
    VJOUJE<<[email protected]@[email protected]>>

    \
    qPBUSFTVMUJOQVU%BUB
    SFTVMUG
    PVUQVU%BUBSFTVMU
    ^

    View Slide

  10. GPU vs CPU
    ɾೖྗʹΛ଍ͯ͠Ҿ͘Λ܁Γฦ͢
    ɾ$16ଆͰ͸ɺ্هΛສY/ճ
    ɾ(16ଆͰ͸ສεϨουY/ճ
    LFSOFMWPJEBEE"OE4VCUSBDU DPOTUEFWJDFqPBUJOQVU%BUB<<CV⒎FS
    >>
    EFWJDFqPBUPVUQVU%BUB<<CV⒎FS
    >>
    VJOUJE<<[email protected]@[email protected]>>

    \
    qPBUSFTVMUJOQVU%BUB
    GPS VJOUJJ/J
    \
    SFTVMUG
    SFTVMUG
    ^
    PVUQVU%BUBSFTVMU
    ^

    View Slide

  11. CPU vs GPU
    ഒఔ౓

    View Slide

  12. CPU vs GPU ʢର਺ʣ
    $16(16ؒͷ΍ΓͱΓΛ࠷খݶʹ͢Δ͜ͱ͕େࣄ

    View Slide

  13. ࣮૷ํ๏ɺಛੑ͕෼͔͖ͬͯͨͱ͜ΖͰ
    Կ͔Ԡ༻ͯ͠ΈΑ͏ʂ

    View Slide

  14. ܈஌ೳͱ͸ʁ
    ਓ޻஌ೳͷҰछɺूஂͱͯ͠ߴ౓ͳৼΔ෣͍

    View Slide

  15. ܈Εͷ3ͭͷϧʔϧ
    B౳ڑ཭֤ݸମ͕౳ڑ཭ΛอͭΑ͏ʹಈ͘
    Cฒߦ֤ݸମ͕ଞͷݸମͱಉ͡޲͖ʹͳΔΑ͏ʹಈ͘
    D౳଎֤ݸମ͸ଞͷݸମͱಉ͡଎౓ʹͳΔΑ͏ʹಈ͘

    View Slide

  16. ਺ࣜԽ
    B౳ڑ཭
    Cฒߦ
    D౳଎౓

    View Slide

  17. γΣʔμʔͷίʔυ
    LFSOFMWPJENPWF ʜ
    GPS VJOUJJOPEF$PVOUJ
    \
    ʜ
    ౳ڑ཭
    qPBUBUUSBDUJPOFYQ C EJTUBODFB
    EJTUBODFB


    qPBUSFQVMTJPOFYQ CEJTUBODFEJTUBODF

    E"OHMFBMQIB OFBS"OHMFBUUSBDUJPOGBS"OHMFSFQVMTJPO
    JOUFSWBM
    ฒߦ
    qPBUQBSBMMFM"OHMF%JGHFU3BOHFE"OHMF OPEFBOHMFDVSSFOU/PEFBOHMF

    E"OHMFCFUBQBSBMMFM"OHMF%JGFYQ CEJTUBODFEJTUBODF
    JOUFSWBM
    ౳଎౓
    qPBUOPEF7FMPDJUZTRSU OPEFWFMPDJUZ9OPEFWFMPDJUZ9OPEFWFMPDJUZ:OPEFWFMPDJUZ:

    WFMPDJUZHBNNB OPEF7FMPDJUZWFMPDJUZ
    FYQ CEJTUBODFEJTUBODF

    ^

    View Slide

  18. ߏ੒
    ʢ6**NBHF7JFXͷαϒΫϥεʣ
    7JFX$POUSPMMFSTXJGU
    .FUBM.BOBHFSTXJGU 4IBEFSNFUBM

    View Slide

  19. ࣮ԋ case1
    IUUQTZPVUVCFD"60+XNF6"
    ЋЌ—Ѝ

    View Slide

  20. ࣮ԋ case2
    IUUQTZPVUVCF(KES:&3:,7D
    ЋЌЍ

    View Slide

  21. ࣮ԋ case3
    IUUQTZPVUVCF8M.J+%[$G
    ЋЌЍ

    View Slide

  22. ύϑΥʔϚϯεʹ͍ͭͯ
    ͷݸମΛ࢖༻ɺͦΕͧΕͷ૬ޓ࡞༻Λߟ͑ͨͷͰ
    YͰճͷԋࢉΛຖϑϨʔϜ͝ͱ
    ඵؒʹճ࣮ߦ
    GQTΛΩʔϓɺ$16઎༗཰ఔ౓
    FYQؔ਺͚ͩͰສճඵʢʣ

    View Slide

  23. ·ͱΊ
    ຊ೔ͷൃද಺༰ɺৄࡉ͸2JJUBͰ
    .FUBMͰϋΠύϑΥʔϚϯεͳ(16ฒྻԋࢉ͕Մೳ
    ෳࡶͳݱ৅ΛJ1IPOF಺ʹ࠶ݱͰ͖Δ
    ਓ޻஌ೳͳͲ΁ͷԠ༻ɺظ଴େ
    [email protected][

    View Slide

  24. ͯͯ͘͘ษڧձ #tekutekustudy
    ҟۀछΤϯδχΞ͕ू·Δษڧձ

    View Slide

  25. Metal Advent Calendar

    View Slide

  26. ιʔείʔυ
    HJUIVCDPNZVLJOBHB4XBSN*OUFMMJHFODF

    View Slide