System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于大規模腦仿真,尤其涉及不同硬件平臺的大規模腦仿真融合。
技術介紹
1、在進行大規模腦仿真時,開發人員通常會將巨大的神經元網絡劃分至不同計算芯片,利用多個芯片共同進行計算,從而完成大規模的仿真。因此大規模腦仿真過程中需要利用集合通信庫同步多個計算芯片的計算結果,常見的通信庫有在cpu平臺仿真時使用的基于消息傳遞接口標準(mpi,message?passing?interface)的open?mpi(open?messagepassing?interface)、mpich、mvapich等,open?mpi、mpich、mvapich均是開源的高性能消息傳遞接口(mpi)實現。它們提供了用于編寫并行程序的庫和運行時環境,使得開發人員可以在分布式內存系統中進行并行計算。在nvidia?gpu平臺仿真時使用的nvidia集合通信庫(nccl,nvidia?collective?communications?library),nccl是由nvidia開發的用于高性能gpu加速集群上的并行通信庫。nccl主要用于實現gpu之間的高效數據傳輸和通信操作,支持在多個gpu上進行并行計算和深度學習訓練。
2、不同硬件平臺的通信庫實現方式、接口都存在一定差異,加上當前新的計算芯片不斷涌現,例如國產計算芯片、tpu等,為了進一步提高大規模腦仿真的精度和效率,開發人員亟需將已有腦仿真應用遷移至更適合腦仿真計算特性的芯片上。當用戶將原本基于某一平臺如cpu的腦仿真應用遷移至另一平臺如nvidia?gpu時,需要將原本使用的通信庫
技術實現思路
1、有鑒于此,本專利技術提出一種大規模腦仿真通信庫的融合系統,用于不同硬件平臺的大規模腦仿真;該系統包括:統一應用接口層、硬件適配層、后端層以及硬件層;其中,
2、統一應用接口層,定義面向用戶的統一應用接口;
3、其中,用戶通過調用所述統一應用接口層,將需要通信的緩沖區地址和數據大小信息傳至具體的通信后端;
4、硬件適配層,通過建立統一通信子進行數據管理,實現內核層,統一管理通信資源;
5、后端層,封裝了基于不同硬件平臺的通信后端的通信接口,實現具體的通信功能;
6、硬件層,包括硬件及其驅動、軟件開發工具包。
7、進一步地,統一應用接口層包括:初始化和資源釋放接口、信息讀取接口、通信原語接口以及通信同步接口;其中,
8、初始化和資源釋放接口包括:初始化通信環境接口init和資源釋放接口finalize;
9、其中,將通過所述初始化通信環境接口init初始化的信息存儲于通信子數據結構中,并在資源釋放接口中通過對該通信子的操作釋放對應硬件的通信資源;
10、信息讀取接口包括:獲取通信實體編號接口get_comm_rank、獲取通信實體數量接口get_comm_size和獲取設備號接口get_device_id;
11、通信原語接口包括:點對點通信原語和集合通信原語;支持常用數據類型及常用數據操作;
12、通信同步接口用于在調用異步接口后進行通信同步。
13、進一步地,硬件適配層包括:后端初始化和釋放單元、全局唯一id標識和設備關系映射單元、通信上下文管理單元和數據類型轉換單元;其中,
14、后端初始化和釋放單元,根據初始化選取的后端,完成通信后端的選擇與初始化;
15、全局唯一id標識和設備關系映射單元,用于將一個全局唯一id標識對應一個設備,針對單進程多設備的情況建立進程與全局唯一id標識以及設備之間的映射關系;
16、通信上下文管理單元,用于通過定義一個統一的通信子數據結構以存放不同后端所需的通信資源;
17、其中,用戶通過統一應用接口層的信息讀取接口獲取通信實體編號接口get_comm_rank,并將該通信實體編號接口get_comm_rank傳入通信子信息以獲取全局唯一id標識,以指定與所述全局唯一id標識對應的設備完成具體的計算或通信任務;
18、數據類型轉換單元,用于通過定義一個統一的通信數據類型數據結構和一個統一的通信數據運算符數據結構,以對不同后端使用的通信數據類型和通信數據運算符進行轉換映射。
19、進一步地,所述后端層的封裝包括:定義一個包含了初始化、資源釋放、通信原語和同步功能的后端數據結構;
20、在所定義的后端數據結構的基礎上,創建一個后端數據結構數組,用于存放不同平臺的通信后端信息;對某一平臺的通信后端的初始化、資源釋放、通信原語和同步功能進行封裝,將封裝得到的函數賦值給后端變量,并存放在所述定義的后端數據結構數組中;
21、其中,所述定義的后端數據結構數組由硬件適配層的后端初始化和釋放單元進行資源的初始化和釋放,并提供給統一應用接口層。
22、本專利技術還提供一種大規模腦仿真通信庫的融合方法,用于不同硬件平臺的大規模腦仿真;該方法包括:
23、步驟s1:抽象接口功能,設計統一應用接口、統一數據類型和數據操作符;
24、步驟s2:通過建立統一通信子進行數據管理,實現內核層,統一管理通信資源;
25、步驟s3:抽象多個實際后端的共通性,設計統一后端數據結構,并在使用具體設備時對相關的數據結構進行數據填充;
26、步驟s4:對各平臺后端中的數據類型和數據操作符進行映射;
27、步驟s5:對各平臺后端中與所設計的應用接口功能相同的接口進行封裝。
28、進一步地,步驟s1的統一應用接口(api)、統一數據類型和數據操作符具體為:
29、統一接口包括:始化通信環境接口init、資源釋放接口finalize、獲取通信實體編號接口get_comm_rank、獲取通信實體數量接口get_comm_size、獲取設備號接口get_device_id、點對點發送接口send、點對點接收接口recv、廣播接口bcast、全發送alltoall接口all_to_all、全收集allgather接口all_gather、全歸約allreduce接口all_reduce、歸約散發reducescatter接口reduce_scatter、同步接口synchronize;
30、統一數據類型具體為字符類型char;包括整數類型和浮點數類型;
31、統一數據操作符包括:求和sum、求積prod、求最大值max、求最小值min、求均值avg。
32、進一步地,步驟s2的內核層包括統一的通信子,其數據類型本文檔來自技高網...
【技術保護點】
1.一種大規模腦仿真通信庫的融合系統,用于不同硬件平臺的大規模腦仿真;其特征在于,該系統包括:統一應用接口層、硬件適配層、后端層以及硬件層;其中,
2.如權利要求1所述的大規模腦仿真通信庫的融合系統,其特征在于,統一應用接口層包括:初始化和資源釋放接口、信息讀取接口、通信原語接口以及通信同步接口;其中,
3.如權利要求1所述的大規模腦仿真通信庫的融合系統,其特征在于,硬件適配層包括:后端初始化和釋放單元、全局唯一ID標識和設備關系映射單元、通信上下文管理單元和數據類型轉換單元;其中,
4.如權利要求1-3任一項所述的大規模腦仿真通信庫的融合系統,其特征在于,所述后端層的封裝包括:定義一個包含了初始化、資源釋放、通信原語和同步功能的后端數據結構;
5.一種大規模腦仿真通信庫的融合方法,用于不同硬件平臺的大規模腦仿真;其特征在于,該方法包括:
6.如權利要求5所述的一種大規模腦仿真通信庫的融合方法,其特征在于,步驟S1的統一應用接口(API)、統一數據類型和數據操作符具體為:
7.如權利要求5所述的一種大規模腦仿
8.如權利要求5所述的一種大規模腦仿真通信庫的融合方法,其特征在于,步驟S3的統一后端數據結構包括不同后端的聲明以及通用接口聲明。
9.如權利要求5所述的一種大規模腦仿真通信庫的融合方法,其特征在于,步驟S4的映射包括:
10.如權利要求5-9任一項所述的一種大規模腦仿真通信庫的融合方法,其特征在于,步驟S5的封裝包括:將所定義的統一接口傳入的緩沖區地址、消息大小、統一通信子傳給實際通信后端的接口,將傳入的數據類型和數據操作符進行轉換再傳給實際通信后端的接口。
...【技術特征摘要】
1.一種大規模腦仿真通信庫的融合系統,用于不同硬件平臺的大規模腦仿真;其特征在于,該系統包括:統一應用接口層、硬件適配層、后端層以及硬件層;其中,
2.如權利要求1所述的大規模腦仿真通信庫的融合系統,其特征在于,統一應用接口層包括:初始化和資源釋放接口、信息讀取接口、通信原語接口以及通信同步接口;其中,
3.如權利要求1所述的大規模腦仿真通信庫的融合系統,其特征在于,硬件適配層包括:后端初始化和釋放單元、全局唯一id標識和設備關系映射單元、通信上下文管理單元和數據類型轉換單元;其中,
4.如權利要求1-3任一項所述的大規模腦仿真通信庫的融合系統,其特征在于,所述后端層的封裝包括:定義一個包含了初始化、資源釋放、通信原語和同步功能的后端數據結構;
5.一種大規模腦仿真通信庫的融合方法,用于不同硬件平臺的大規模腦仿真;其特征在于,該方法包括:
6.如權利要求5所述的一種大規模腦仿真通信庫的融合方法,其特征在于,步...
【專利技術屬性】
技術研發人員:吳穎,賈海波,金羅軍,蔡炎松,梁華駒,陳廣鵬,龍善敏,周華浩,王俊宜,
申請(專利權)人:中國電子科技南湖研究院,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。