Rumah >Peranti teknologi >AI >Flying Paddle direka dan diamalkan untuk keselarian automatik dalam senario heterogen.
Sebelum memperkenalkan paralelisme automatik, mari kita fikirkan mengapa keselarian automatik diperlukan? Di satu pihak, terdapat struktur model yang berbeza, dan di sisi lain, terdapat pelbagai strategi selari secara amnya terdapat hubungan pemetaan banyak-ke-banyak antara kedua-duanya. Dengan mengandaikan bahawa kita boleh melaksanakan struktur model bersatu untuk memenuhi pelbagai keperluan tugas, adakah strategi selari kita akan mencapai penumpuan pada struktur model bersatu ini?
Jawapannya tidak, kerana strategi selari bukan sahaja berkaitan dengan struktur model ; Saiz model dan sumber mesin sebenar yang digunakan adalah berkait rapat. Ini mencerminkan nilai selari automatik Matlamatnya ialah: selepas pengguna diberikan model dan sumber mesin yang digunakan, ia secara automatik boleh membantu pengguna memilih strategi selari yang lebih baik atau optimum untuk pelaksanaan yang cekap.
Berikut ialah senarai beberapa pekerjaan yang saya minati. Ia mungkin tidak lengkap. Saya ingin membincangkan status semasa dan sejarah paralelisme automatik dengan awak. Ia secara kasar dibahagikan kepada beberapa dimensi: dimensi pertama ialah tahap selari automatik, yang dibahagikan kepada automatik sepenuhnya dan separa automatik adalah kebutiran selari, yang menyediakan strategi selari untuk setiap Lapisan atau untuk setiap operator tensor untuk menyediakan strategi selari; yang ketiga adalah kebolehan perwakilan, yang dipermudahkan kepada dua kategori: SPMD (Single Program Multiple Data) paralelisme dan Pipeline parallelism, berikut adalah senarai kerja berkaitan yang saya rasa lebih tersendiri . tempat kelima ialah perkakasan sokongan, terutamanya menulis jenis dan kuantiti perkakasan terbesar yang disokong oleh kerja berkaitan. Antaranya, bahagian yang ditandakan dengan warna merah adalah terutamanya titik pencerahan untuk pembangunan selari automatik dayung terbang.
Untuk keselarian automatik sepenuhnya, kita dapat melihat bahawa kebutiran selari ditentukan oleh kasar proses pembangunan daripada butiran kepada butiran halus adalah daripada SPMD yang agak mudah kepada model yang sangat umum dan Paip yang disokong adalah daripada CNN yang ringkas kepada RNN kepada GPT yang lebih kompleks walaupun ia menyokong berbilang mesin dan berbilang kad; Tetapi skala keseluruhannya tidak begitu besar.
Untuk selari separa automatik, kebutiran selari pada asasnya berdasarkan operator , dan keupayaan perwakilan terdiri daripada SPMD mudah untuk melengkapkan strategi selari SPMD ditambah Pipeline, skala sokongan model mencecah ratusan bilion dan trilion, dan bilangan perkakasan yang digunakan mencapai tahap kilokalori.
Dari perspektif rangka kerja, kita dapat melihat bahawa rangka kerja sedia ada pada asasnya adalah mod automatik telah disokong atau dirancang untuk disokong, dan butiran selari juga telah dibangunkan kepada butiran pengendali Keupayaan perwakilan pada asasnya menggunakan perwakilan lengkap SPMD ditambah Pipeline, dan berorientasikan kepada pelbagai model dan pelbagai perkakasan.
Berikut ialah ringkasan beberapa pemikiran peribadi:
① Perkara pertama ialah strategi yang diedarkan disatukan secara beransur-ansur dalam perwakilan asas.
② Perkara kedua, separa automatik akan beransur-ansur menjadi paradigma pengaturcaraan teragih bagi rangka kerja, manakala automatik sepenuhnya akan meneroka pelaksanaan berdasarkan senario tertentu dan peraturan empirikal. .
③ Perkara ketiga ialah untuk mencapai prestasi akhir ke hujung yang muktamad, yang memerlukan penalaan bersama strategi selari dan strategi pengoptimuman.
Secara amnya, latihan teragih yang lengkap merangkumi 4 proses khusus. Yang pertama ialah pembahagian model Sama ada penyelarasan manual atau penyelarasan automatik, model perlu dibahagikan kepada pelbagai tugas yang boleh diselaraskan memohon daripada platform ; Kemudian terdapat penempatan tugas (atau pemetaan tugas), yang bermaksud meletakkan tugas yang dibahagikan pada sumber yang sepadan, akhirnya terdapat pelaksanaan yang diedarkan, yang bermaksud tugas pada setiap peranti dilaksanakan secara selari dan disegerakkan dan berinteraksi melalui mesej. komunikasi.
Sesetengah penyelesaian arus perdana semasa mempunyai beberapa masalah: dalam satu pihak, mereka mungkin hanya mempertimbangkan beberapa proses dalam latihan yang diedarkan, atau hanya menumpukan pada beberapa proses; yang kedua ialah mereka terlalu bergantung mengenai pengalaman pakar Peraturan, seperti pembahagian model dan peruntukan sumber akhirnya, kekurangan kesedaran tentang tugas dan sumber semasa keseluruhan proses latihan;
Seni bina latihan teragih adaptif hujung ke hujung yang direka oleh Fei Paddle secara komprehensif mempertimbangkan 4 asas proses Di atas, yang kelima proses ditambah, iaitu penjadualan fleksibel. Konsep reka bentuk teras kami terutamanya merangkumi tiga perkara ini:
Pertama, pengkomputeran dan sumber dinyatakan dalam cara yang bersatu, dan pengkomputeran serta sumber adalah sama penting. Selalunya orang lebih prihatin tentang cara membahagikan model, tetapi kurang perhatian diberikan kepada sumber. Di satu pihak, kami menggunakan graf pengkomputeran teragih bersatu untuk mewakili pelbagai strategi selari, sebaliknya, kami menggunakan graf sumber teragih bersatu untuk memodelkan pelbagai sumber mesin, yang boleh mewakili isomorfik, Ia juga boleh mewakili hubungan sambungan sumber heterogen; termasuk keupayaan pengkomputeran dan penyimpanan sumber itu sendiri.
Kedua, memaksimumkan penyahgandingan Sebagai tambahan kepada penyahgandingan antara modul, kami juga akan mengasingkan segmentasi logik daripada peletakan fizikal dan pelaksanaan teragih, supaya model yang berbeza dapat direalisasikan dengan lebih baik dalam sumber Kluster yang berbeza berprestasi dengan cekap.
Ketiga, penyesuaian hujung ke hujung merangkumi semua proses yang terlibat dalam latihan teragih dan menggunakan model perwakilan global untuk memacu keputusan penyesuaian pada strategi selari atau penempatan sumber untuk menggantikan penyesuaian manual sebanyak mungkin. Bahagian yang dibingkai dalam warna biru muda dalam gambar di atas ialah kerja berkaitan selari automatik yang diperkenalkan dalam laporan ini.
Yang pertama ialah graf pengkomputeran teragih bersatu. Tujuan penyatuan adalah untuk memudahkan kami menyatakan pelbagai strategi selari sedia ada dengan cara yang bersatu, yang kondusif untuk pemprosesan automatik. Seperti yang kita sedia maklum, graf pengiraan bersiri boleh mewakili pelbagai model Begitu juga, berdasarkan graf pengiraan bersiri, kami menambah atribut teragih kepada setiap operator dan tensor untuk berfungsi sebagai graf pengiraan teragih Pendekatan berbutir halus ini boleh mewakili sedia ada strategi selari, dan semantik akan menjadi lebih kaya dan lebih umum, dan ia juga boleh mewakili strategi selari baharu. Atribut teragih dalam graf pengkomputeran teragih terutamanya merangkumi tiga aspek maklumat: 1) Ia perlu menunjukkan cara membahagi tensor atau cara memisahkan operator 2) Ia perlu menunjukkan sumber yang digunakan untuk pengkomputeran teragih; untuk membelahnya Tensor atau operator yang terhasil dipetakan ke sumber. Berbanding dengan graf pengkomputeran bersiri, graf pengkomputeran teragih mempunyai tiga konsep asas: tensor teragih, yang serupa dengan tensor bersiri, yang serupa dengan penyusunan semula teragih, yang diedarkan Unik kepada graf pengiraan;
Mula-mula, perkenalkan tiga aspek maklumat yang disertakan dalam tensor teragih:
① Maklumat tensor bersiri: Terutamanya mengandungi beberapa meta-maklumat seperti bentuk tensor dan dtype Secara amnya, pengiraan sebenar tidak memerlukan instantiasi tensor bersiri.
② ProcessMesh: Perwakilan topologi kartesi proses adalah berbeza daripada DeviceMesh Sebab kami menggunakan ProcessMesh terutamanya untuk mengharapkan proses logik boleh dipadankan dengan peranti fizikal A decoupling, yang memudahkan pemetaan tugas yang lebih cekap.
③ ShardSpec: digunakan untuk menunjukkan dimensi ProcessMesh yang digunakan untuk memisahkan setiap dimensi siri tensor , sila lihat contoh di bawah untuk butiran.
Andaikan terdapat tensor 6*12 dua dimensi dan ProcessMesh 3*2 (dimensi pertama ialah x , dimensi kedua ialah y, dan elemen ialah ID proses). Jika ShardSpec ialah [Tiada, Tiada], ini bermakna dimensi ke-0 dan ke-2 tensor tidak dibahagikan dan terdapat tensor penuh pada setiap proses. Jika ShardSpec ialah ['x', 'y'], ini bermakna paksi-x ProcessMesh digunakan untuk memotong dimensi ke-0 tensor dan paksi-y ProcessMesh digunakan untuk memotong dimensi pertama tensor. , supaya setiap proses mempunyai saiz tensor tempatan 2*6. Ringkasnya, melalui ProcessMesh dan ShardSpec dan maklumat bersiri sebelum tensor dipecah, adalah mungkin untuk mewakili situasi pemisahan tensor pada proses yang berkaitan.
Pengendali teragih Perwakilan adalah berdasarkan pada tensor teragih dan termasuk maklumat operator bersiri, sifat teragih tensor input dan output. Begitu juga, tensor teragih mungkin sepadan dengan kaedah penghirisan berbilang Atribut teragih dalam operator teragih adalah berbeza dan sepadan dengan kaedah penghirisan yang berbeza. Mengambil operator pendaraban segi empat tepat Y=X*W sebagai contoh, jika atribut pengedaran input dan output adalah berbeza, ia sepadan dengan pelaksanaan operator teragih yang berbeza (atribut pengedaran termasuk ProcessMesh dan ShardSpec). Untuk pengendali teragih, ProcessMesh tensor input dan outputnya adalah sama.
Yang terakhir ialah penyusunan semula teragih, iaitu satu konsep yang graf pengkomputeran teragih mesti perlu berurusan dengan situasi di mana sifat taburan tensor sumber dan tensor destinasi adalah berbeza. Sebagai contoh, terdapat dua operator dalam pengiraan Operator sebelumnya menghasilkan y, yang berbeza daripada operator seterusnya menggunakan atribut teragih y (ditunjukkan oleh warna yang berbeza dalam rajah pada masa ini, kita perlu memasukkan tambahan Operasi reshard untuk melaksanakannya melalui komunikasi Intipati penyusunan semula teragih tensor adalah untuk menangani ketidakpadanan antara pengeluaran dan penggunaan.
Terdapat tiga sebab utama ketidakpadanan: 1) Ia menyokong pengasingan data dan pengiraan, jadi terdapat kaedah rawatan yang berbeza untuk tensor dan operator yang menggunakan ia. Atribut teragih; 2) Menyokong penandaan yang ditentukan oleh pengguna bagi atribut teragih yang berbeza untuk tensor dan operator yang menggunakannya; atribut formula tidak disokong, penyusunan semula yang diedarkan juga diperlukan.
Selepas memperkenalkan tiga konsep asas graf pengkomputeran teragih bersatu, mari lihat graf sumber teragih bersatu Pertimbangan reka bentuk utama ialah: 1) Menyokong gugusan heterogen bermakna gugusan mungkin mempunyai sumber CPU, GPU dan XPU . ; 2) Mewakili sambungan topologi, yang meliputi hubungan sambungan hierarki kluster, termasuk kuantifikasi keupayaan sambungan, seperti lebar jalur atau kependaman 3) Pemodelan peranti itu sendiri, termasuk keupayaan storan dan pengkomputeran. Untuk memenuhi keperluan reka bentuk di atas, kami menggunakan Kluster untuk mewakili sumber teragih, yang mengandungi berbilang DeviceMesh isomorfik. Setiap DeviceMesh akan mengandungi Graf yang terdiri daripada pautan Peranti.
Ini adalah contoh dalam gambar di atas, anda boleh melihat bahawa terdapat 4 mesin, termasuk 2 mesin GPU dan 2 mesin XPU. Untuk 2 mesin GPU, satu DeviceMesh isomorphic akan digunakan dan untuk 2 mesin XPU, DeviceMesh isomorphic lain akan digunakan. Untuk kluster tetap, DeviceMeshnya ditetapkan, dan pengguna mengendalikan ProcessMesh, yang boleh difahami sebagai abstraksi DeviceMesh Pengguna boleh membentuk semula dan menghiris sesuka hati, dan akhirnya proses ProcessMesh akan dipetakan secara seragam ke peranti DeviceMesh.
diwakili oleh graf pengkomputeran teragih halus berdasarkan tensor dan pengendalinya boleh meliputi strategi selari sedia ada dan juga strategi selari baharu yang mungkin muncul pada masa hadapan. Keselarian data adalah untuk memisahkan dimensi Batch tensor data. Model membahagikan dimensi berkaitan berat secara selari. Keselarian saluran paip diwakili oleh ProcessMesh yang berbeza, yang boleh dinyatakan sebagai selari Saluran Paip yang lebih fleksibel Contohnya, Peringkat Talian Paip boleh menyambungkan berbilang Peringkat Talian Paip, dan bentuk ProcessMesh yang digunakan oleh Peringkat yang berbeza boleh berbeza. Keselarian saluran paip beberapa rangka kerja lain dicapai melalui Nombor Peringkat atau Peletakan, yang tidak cukup fleksibel dan serba boleh. Keselarian hibrid ialah campuran keselarian data, keselarian model tensor dan keselarian saluran paip.
Bahagian hadapan ialah reka bentuk seni bina selari automatik dayung terbang dan pengenalan beberapa abstrak konsep. Berdasarkan asas sebelumnya, mari kita perkenalkan proses pelaksanaan dalaman paralelisasi automatik dayung terbang melalui contoh rangkaian lapisan 2 FC.
Gambar di atas ialah keseluruhan carta alir selari automatik dayung terbang. Pertama, kami akan melakukan penjanaan songsang berdasarkan graf pengiraan hadapan bersiri untuk mendapatkan graf pengiraan lengkap termasuk subgraf ke hadapan, ke belakang dan kemas kini. Kemudian, adalah perlu untuk menjelaskan sifat teragih setiap tensor dan setiap operator dalam rangkaian. Sama ada kaedah terbitan separa automatik atau kaedah carian automatik sepenuhnya boleh digunakan. Laporan ini menerangkan terutamanya kaedah terbitan separa automatik, iaitu untuk menyimpulkan sifat teragih tensor dan pengendali tidak berlabel lain berdasarkan sebilangan kecil label pengguna. Selepas terbitan melalui sifat teragih, setiap tensor dan setiap operator dalam graf pengiraan bersiri mempunyai sifat teragihnya sendiri. Berdasarkan atribut teragih, graf pengiraan bersiri mula-mula diubah menjadi graf pengiraan teragih logik yang menyokong selari SPMD melalui modul segmentasi automatik, dan kemudian melalui penyusunan semula teragih, graf pengiraan teragih logik yang menyokong selari Paip direalisasikan. Graf pengkomputeran teragih logik yang dijana akan diubah menjadi graf pengkomputeran teragih fizikal melalui pemetaan fizikal Pada masa ini, hanya pemetaan satu dengan satu bagi satu proses dan satu peranti disokong. Akhir sekali, graf pengkomputeran teragih fizikal ditukar menjadi graf pergantungan tugas sebenar dan diserahkan kepada pelaksana tak segerak untuk pelaksanaan sebenar.
Terbitan atribut teragih diberi sifat teragih beberapa tensor dan operator dalam graf pengiraan, sifat teragih semua tensor dan operator lain dilengkapkan secara automatik. Contohnya ialah dua pengiraan Matmul Pengguna hanya menandakan dua atribut teragih parameter, yang bermaksud bahawa W1 melakukan pemotongan lajur pada proses 0 dan 1, dan W2 melakukan pemotongan baris pada proses 2 dan 3. Terdapat dua ProcessMesh yang berbeza .
Penerbitan atribut teragih dibahagikan kepada dua langkah: 1) Mula-mula menjalankan penghantaran ProcessMesh untuk melaksanakan segmentasi Saluran Paip 2) Kemudian menjalankan penghantaran ShardSpec untuk melaksanakan segmentasi SPMD dalam satu Peringkat. Derivasi ProcessMesh menggunakan Program linear paddle terbang lR, dan menggunakan strategi pemilihan terdekat untuk derivasi mengikut Susunan Program statik Ia menyokong pengiraan yang disertakan, iaitu, jika terdapat dua ProcessMesh, satu lebih besar dan satu lagi lebih kecil, maka. yang lebih besar dipilih sebagai ProcessMesh terakhir. Derivasi ShardSpec menggunakan Flying Paddle SSA Graph IR untuk melakukan analisis aliran data ke hadapan dan ke belakang untuk derivasi Sebab mengapa analisis aliran data boleh digunakan adalah kerana semantik ShardSpec memenuhi sifat Semilattice analisis aliran data. Analisis aliran data secara teorinya boleh menjamin penumpuan Dengan menggabungkan analisis ke hadapan dan ke belakang, sebarang maklumat tanda kedudukan dalam graf pengiraan boleh disebarkan ke keseluruhan graf pengiraan, dan bukannya merambat dalam satu arah sahaja.
Berdasarkan terbitan atribut teragih, setiap jumlah tensor dalam graf dikira secara bersiri Setiap operator mempunyai atribut teragih sendiri, supaya graf pengiraan boleh dibahagikan secara automatik berdasarkan atribut teragih. Mengikut contoh, graf pengiraan bersiri mesin tunggal diubah menjadi empat graf pengiraan Rank0, Rank1, Rank2, dan Rank3.
Ringkasnya, setiap operator akan dilalui, dan jumlah output dibahagikan menjadi tensor, dan kemudian setiap operator dikira dan dibahagikan. Segmentasi Tensor akan menggunakan objek Tensor Teragih untuk membina objek Tensor Tempatan, manakala segmentasi operator akan menggunakan objek Operator Teragih untuk memilih pelaksanaan teragih yang sepadan berdasarkan atribut pengedaran input dan output sebenar, serupa dengan pengagihan operator daripada a rangka kerja mesin tunggal kepada proses Kernel.
Melalui segmentasi automatik sebelumnya, hanya graf pengkomputeran teragih yang menyokong selari SPMD boleh diperolehi . Untuk menyokong paralelisme Saluran Paip, ia juga perlu diproses melalui penyusunan semula teragih, supaya dengan memasukkan operasi Reshard yang sesuai, setiap Kedudukan dalam contoh mempunyai graf pengiraan yang benar-benar bebas. Walaupun Y bagi Rank0 dalam gambar kiri adalah sama dengan Y Rank2, mereka berada pada ProcessMesh yang berbeza, mengakibatkan ketidakpadanan dalam atribut pengedaran pengeluaran dan penggunaan, jadi Reshard juga perlu dimasukkan.
Flying Paddle pada masa ini menyokong dua jenis penyusunan semula yang diedarkan. Kategori pertama ialah taburan tensor sumber yang lebih biasa dan taburan tensor sasaran pada ProcessMesh yang sama, tetapi taburan tensor sumber dan taburan tensor sasaran menggunakan kaedah penghirisan yang berbeza (iaitu, ShardSpec adalah berbeza). Kategori kedua ialah taburan tensor sumber dan tensor sasaran diedarkan pada ProcessMesh yang berbeza, dan saiz ProcessMesh boleh berbeza, seperti proses 0-5 dan proses 6-9 dalam kes 2 dalam rajah. Untuk mengurangkan komunikasi sebanyak mungkin, Flying Paddle juga melakukan pengoptimuman berkaitan pada operasi Reshard.
Selepas penyusunan semula diedarkan, graf pengkomputeran teragih logik diperolehi dan pemetaan peranti tertentu. Berdasarkan graf pengkomputeran teragih logik dan graf perwakilan sumber yang disatukan sebelum ini, operasi pemetaan fizikal dilakukan, iaitu Pemetaan Kedudukan, iaitu untuk mencari penyelesaian pemetaan optimum daripada penyelesaian pemetaan berbilang (peranti mana proses dipetakan secara khusus).
Berikut ialah pelaksanaan yang agak mudah berdasarkan peraturan tamak. Pertama, bina jadual bersebelahan antara proses dan komunikasi antara proses Tepi mewakili volum komunikasi dan nod mewakili keperluan peranti Kemudian bina jadual bersebelahan antara peranti dan nod mewakili pengkomputeran peranti ingatan. Kami akan memilih proses R secara rawak dan meletakkannya pada peranti D yang memenuhi keperluan Selepas meletakkannya, kami akan memilih proses dengan volum komunikasi yang paling besar dengan R dan meletakkannya pada peranti lain di mana D berada kaedah akan digunakan sehingga semua pemetaan proses selesai. Semasa proses pemetaan, adalah perlu untuk menentukan sama ada peranti yang dipilih sepadan dengan jenis peranti yang diperlukan oleh graf proses, serta jumlah pengiraan dan memori yang diperlukan.
Selepas pemetaan fizikal, kami akan membina rangkaian teragih berdasarkan tugasan Sebenar fizikal yang diperolehi graf pergantungan. Contoh dalam rajah ialah membina graf pergantungan tugas berdasarkan peranan hadapan, belakang dan kemas kini graf pengiraan Operator dengan peranan yang sama akan membentuk tugas. Untuk menyokong pengoptimuman kumpulan mikro, graf pergantungan tugas akan menghasilkan graf pergantungan contoh tugasan berbilang Walaupun setiap kejadian mempunyai logik pengiraan yang sama, ia menggunakan memori yang berbeza. Pada masa ini, Flying Paddle secara automatik akan membina graf tugasan berdasarkan peranan graf pengiraan, tetapi pengguna boleh menyesuaikan pembinaan tugas mengikut butiran yang sesuai. Selepas setiap proses mempunyai graf pergantungan berbilang contoh tugas, ia akan dilaksanakan secara tak segerak berdasarkan mod Aktor, dan penjadualan pelaksanaan 1F1B boleh direalisasikan secara automatik melalui kaedah dipacu mesej.
Berdasarkan keseluruhan proses di atas, kami telah melaksanakan penyejajaran automatik dengan fungsi yang agak lengkap . Tetapi hanya strategi selari tidak dapat memperoleh prestasi hujung ke hujung yang lebih baik, jadi kami juga perlu menambah strategi pengoptimuman yang sepadan. Untuk penyelarasan automatik dayung terbang, kami akan menambah beberapa strategi pengoptimuman sebelum pembahagian automatik dan selepas pembahagian rangkaian Ini kerana beberapa pengoptimuman lebih semula jadi untuk dilaksanakan dalam logik bersiri, dan beberapa pengoptimuman lebih mudah dilaksanakan selepas pembahagian mekanisme pengurusan, kami boleh memastikan gabungan bebas strategi selari dan strategi pengoptimuman dalam penyejajaran automatik dayung terbang.
Amalan permohonan diperkenalkan di bawah.
Yang pertama ialah antara muka Tidak kira bagaimana ia dilaksanakan, pengguna akhirnya akan menggunakan apa yang kita ada melalui antara muka keupayaan selari automatik yang disediakan. Jika keperluan edaran pengguna dibongkar, ia termasuk pembahagian rangkaian model, perwakilan sumber, pemuatan data teragih, kawalan proses pelaksanaan teragih, penjimatan dan pemulihan teragih, dsb. Untuk memenuhi keperluan ini, kami menyediakan kelas Enjin yang menggabungkan kemudahan penggunaan dengan fleksibiliti. Dari segi kemudahan penggunaan, ia menyediakan API peringkat tinggi, boleh menyokong panggilan balik tersuai dan proses yang diedarkan adalah telus kepada pengguna. Dari segi fleksibiliti, ia menyediakan API peringkat rendah, termasuk pembinaan pemuat data teragih, pemotongan dan pelaksanaan graf selari automatik, dan antara muka lain, membolehkan pengguna mempunyai kawalan yang lebih halus. Kedua-duanya akan berkongsi antara muka seperti shard_tensor, shard_op, save dan load.
Terdapat dua antara muka berlabel shard_op dan shard_tensor. Antaranya, shard_op boleh menandakan sama ada satu operator atau keseluruhan Modul, yang merupakan formula berfungsi. Gambar di atas adalah contoh penggunaan yang sangat mudah. Pertama, gunakan API Flying Paddle sedia ada untuk menjalankan rangkaian bersiri, di mana kami akan menggunakan shard_tensor atau shard_op untuk penandaan atribut teragih yang tidak mengganggu. Kemudian, bina enjin selari automatik dan masukkan maklumat dan konfigurasi berkaitan model. Pada masa ini, pengguna mempunyai dua pilihan Satu pilihan ialah menggunakan antara muka pesanan tinggi muat /evaluasi/ramalkan secara langsung, dan pilihan lain ialah menggunakan antara muka pemuat data+sediakan+jalan. Jika anda memilih antara muka yang sesuai, pengguna hanya perlu lulus Set Data dan rangka kerja akan memuatkan set data yang diedarkan secara automatik, menyusun proses selari secara automatik dan melaksanakan latihan yang diedarkan. Jika anda memilih antara muka pemuat data+sediakan+jalankan, pengguna boleh memisahkan pemuatan data teragih, kompilasi selari automatik dan pelaksanaan teragih, membolehkan penyahpepijatan satu langkah yang lebih baik.
PaddleFleetX ialah penyelesaian sehenti hujung ke hujung dengan kemudahan penggunaan dan prestasi tinggi Suite model besar dengan sokongan untuk keupayaan selari automatik. Jika pengguna ingin menggunakan fungsi hujung ke hujung selari automatik dayung terbang, mereka hanya perlu menyediakan rangkaian model graf dinamik bersiri. Selepas memperoleh rangkaian siri graf dinamik pengguna, pelaksanaan dalaman akan menggunakan modul dinamik dayung terbang kepada modul statik untuk menukar rangkaian kad tunggal graf dinamik kepada rangkaian kad tunggal graf statik, dan kemudian secara automatik menyusun secara selari, dan akhirnya menjalankan diedarkan latihan. Semasa penjanaan inferens, sumber mesin yang digunakan mungkin berbeza daripada yang digunakan semasa latihan Pelaksanaan dalaman juga akan melakukan segmentasi parameter penyesuaian parameter dan rangkaian. Pada masa ini, keselarian automatik dalam PaddleFleetX merangkumi strategi selari dan strategi pengoptimuman yang biasa digunakan, dan menyokong mana-mana gabungan kedua-duanya Untuk tugas yang dijana, ia juga menyokong pembahagian automatik aliran kawalan While.
fly Masih banyak kerja yang sedang dilakukan pada paralelisme dayung automatik Ciri-ciri semasa boleh diringkaskan dalam aspek berikut:
Pertama sekali, satu kesatuan. graf pengkomputeran teragih boleh menyokong Strategi pengedaran lengkap SPMD dan Pipeline boleh menyokong perwakilan storan dan pengiraan yang dipisahkan
Kedua, graf sumber teragih bersatu boleh menyokong; Pemodelan dan perwakilan sumber heterogen;
Ketiga, sokong gabungan organik strategi selari dan strategi pengoptimuman; Keempat, ia menyediakan sistem antara muka yang agak lengkap;
Paralelisme secara amnya boleh dibahagikan kepada dua bidang (tiada pembahagian yang jelas), satu adalah tradisional Pengkomputeran teragih, salah satunya adalah pengkomputeran berprestasi tinggi tradisional, kedua-duanya mempunyai kelebihan dan kekurangan mereka sendiri. Rangka kerja perwakilan berdasarkan pengkomputeran teragih tradisional ialah TensorFlow, yang memfokuskan pada mod selari MPMD (Multiple Program-Multiple Data) dan boleh menyokong keanjalan dan toleransi kesalahan Pengalaman pengguna pengkomputeran teragih akan menjadi lebih baik, dan pengaturcaraan lebih mudah umumnya menggunakan Pengaturcaraan dari perspektif global bersiri; rangka kerja perwakilan berdasarkan pengkomputeran berprestasi tinggi tradisional ialah PyTorch, yang lebih memfokuskan pada mod SPMD (Program Tunggal-Berbilang Data) dan mengejar prestasi muktamad untuk pengaturcaraan dan bertanggungjawab untuk membahagikan model itu sendiri Dan memasukkan komunikasi yang sesuai, keperluan pengguna adalah lebih tinggi. Paralelisme automatik atau pengkomputeran teragih adaptif boleh dilihat sebagai gabungan kedua-duanya. Sudah tentu, seni bina yang berbeza mempunyai keutamaan reka bentuk yang berbeza dan perlu ditimbang mengikut keperluan sebenar Kami berharap seni bina penyesuaian dayung terbang dapat mengambil kira kelebihan kedua-dua bidang.
Atas ialah kandungan terperinci Flying Paddle direka dan diamalkan untuk keselarian automatik dalam senario heterogen.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!