把AI導入邊緣裝置就對了!
作者 : Duncan Stewart、Jeff Loucks,Deloitte科技/媒體/電信中心
2020-06-04
邊緣AI晶片可能會嵌入越來越多的消費性裝置,例如高階智慧型手機、平板電腦、智慧揚聲器和可穿戴裝置等。它們還將在多個企業市場中得到應用,例如機器人、攝影機、感測器和其他物聯網裝置...
德勤(Deloitte)預測,2020年,邊緣AI晶片出貨量將超過7.5億顆,銷售金額將達到26億美元,而且邊緣AI晶片的成長速度將遠高於整體晶片市場,估計到到2024年邊緣AI晶片出貨量可能超過15億顆,代表其複合年成長率(CAGR)至少達20%,是整體半導體產業(長期CAGR預測為9%)的兩倍多。
這些邊緣AI晶片可能會嵌入越來越多的消費性裝置,例如高階智慧型手機、平板電腦、智慧揚聲器和可穿戴裝置等。它們還將在多個企業市場中得到應用,例如機器人、攝影機、感測器和其他物聯網裝置。消費性應用邊緣AI晶片市場將遠大於企業應用市場,但成長速度可能會較慢,預計2020年至2024年之間,其CAGR為18%;企業應用邊緣AI晶片市場的成長速度更快,同期CAGR預計為50%。
儘管如此,無論從出貨量還是銷售金額來看,今年消費性裝置應用都將佔據整體邊緣AI晶片市場的90%以上。這些邊緣AI晶片中的絕大部分將應用於高階智慧型手機,佔據目前所有使用中的消費性邊緣AI晶片70%以上。實際上不僅是2020年,在未來幾年,AI晶片的成長將主要由智慧型手機推動。我們相信在今年預期出售的15.6億支智慧型手機中,超過三分之一都可能內含邊緣AI晶片。
由於對處理器的要求非常高,AI運算向來幾乎都在資料中心、企業核心設備或電信邊緣處理器上遠端執行,而不是在終端裝置本地執行;現在,邊緣AI晶片正在改變這一切。它們的實體尺寸更小、相對便宜、功耗更小、產生的熱量也更少,因而可以整合到手持裝置以及非消費性裝置(如機器人)中。
邊緣AI晶片可讓終端裝置能夠在本地執行密集型AI計算,減少甚至消除了將大量資料發送到遠端位置的需求,因此在可用性、速度、資料安全性和隱私性方面益處良多。從隱私和安全性方面來看,在邊緣裝置處理資料顯然更安全;個人資訊不離開手機就不會被攔截或濫用。而當邊緣AI晶片安裝在手機上時,即使未連結網路,它也可以完成所有處理。
當然,並非所有AI運算都必須在本地進行。針對某些應用,例如當裝置上的邊緣AI晶片無法處理太多資料時,將資料發送至遠端AI陣列來處理是適當的、甚至是首選方案。實際上,在大多數情況下,AI將以混合模式完成:一部分在裝置端實現,一部分在雲端實現。具體情況下應該選擇什麼樣的混合方式,要看需要完成的AI處理類型。
智慧型手機邊緣AI經濟學
並非只有智慧型手機使用邊緣AI晶片;其他裝置諸如平板電腦、可穿戴裝置、智慧揚聲器等也會採用AI晶片。短期內,其他裝置對邊緣AI晶片銷售的影響力可能會比智慧型手機小得多,原因若非這類市場沒有什麼成長(如平板電腦),就是這類市場規模太小、無法產生實質性的影響;例如,2020年智慧揚聲器和可穿戴裝置市場總銷售量預計僅1.25億部。不過許多可穿戴裝置和智慧揚聲器都依賴邊緣AI晶片,因此其普及率已經很高。
目前,只有價格最昂貴的智慧型手機(處於價格區間頂部)才可能內置邊緣AI晶片。但是,帶有AI晶片的智慧型手機並不一定要價格昂貴到讓消費者望而卻步。
我們可以對智慧型手機的邊緣AI晶片比例進行合理的估算。目前三星(Samsung)、蘋果(Apple)和華為(Huawei)的手機處理器圖片均顯示出裸片及所有功能特性,因此可以識別出晶片的哪些部分用於哪些功能。例如,三星Exynos 9820晶片的照片顯示,其晶片總面積的大約5%專用於AI處理器,整個應用處理器SoC的成本估計為70.50美元,僅次於顯示器,是手機中第二昂貴的元件,約佔據裝置總物料成本的17%。假設AI部分的成本與裸片上的其他部分一樣,即與所佔裸片面積成正比,那麼Exynos的邊緣AI神經處理單元(NPU)大約佔裸片總成本的5%,相當於每個NPU約3.50美元。
相同的,在蘋果的A12仿生晶片上,專用於機器學習的部分約佔裸片總面積的7%。如果整顆處理器的成本為72美元,邊緣AI部分的成本大約5.10美元。華為麒麟970晶片的成本估計為52.50美元,其中2.1%用於NPU,則這部分成本應為1.10美元(當然,裸片面積並不是衡量晶片總成本中有多少比例屬於AI的唯一方法。據華為表示,麒麟970的NPU包含1.5億個電晶體,佔整體晶片55億個電晶體總數的2.7%;按這樣計算,NPU的成本較高,約1.42美元)。
儘管這裡所提到的成本差別很大,但可以合理假設,NPU的平均成本約為每晶片3.50美元。雖然每顆晶片的價格不高,但考量達到5億支的智慧型手機出貨量(還不包括平板電腦、智慧揚聲器和可穿戴裝置),這仍然是一個很大的市場。
製造商的平均成本為3.50美元,最低可能僅1美元,因此在智慧型手機晶片中添加專用的邊緣AI NPU是很自然的事。按照正常的利潤加價幅度,製造成本增加1美元,對終端消費者而言也僅增加2美元。這意味著即使是價格低於250美元的智慧型手機,也可以享受NPU及其帶來的好處,如更好的攝影機、離線語音助理等,而價格漲幅不到1%。
AI晶片來源:自家生產還是找外部供應商?
生產智慧型手機和其他裝置的廠商取得邊緣AI晶片的方式各不相同,這主要取決於手機機型、甚至是區域市場等因素。有些公司向高通(Qualcomm)和聯發科(MediaTek)等第三方供應商採購應用處理器/數據機晶片,這兩家公司在2018年合計佔據了智慧型手機SoC市場約60%的比例。高通和聯發科提供了一系列不同價位的SoC;儘管並非都包含邊緣AI晶片,高階型號通常都會有,例如高通的Snapdragon 845和855,以及聯發科的Helio P60。
在另一方面,蘋果則完全不使用外部供應商的應用處理器晶片,而是設計並使用自己的處理器SoC,如A11、A12和A13 仿生晶片,所有這些晶片都支援邊緣AI。其他手機製造商如三星和華為則採用混合策略,也就是會從市場上的晶片供應商採購一部分SoC,其餘則使用自家研發的晶片,例如三星的Exynos 9820和華為的麒麟970/980。
兵家必爭的企業與工業應用領域邊緣AI市場
如果在智慧型手機和其他裝置中採用邊緣AI處理器好處多多,那為何不將之導入企業應用呢?事實上邊緣AI處理器已經有一些企業應用案例了,例如某些自主無人機;配備了智慧型手機應用處理器SoC的無人機,能完全在裝置端執行即時導航和避障,無需連結網路。
但是,針對智慧型手機或平板電腦最佳化的晶片並非許多企業或工業應用的正確選擇。如前面所述,智慧型手機SoC的邊緣AI部分僅佔總面積的5%,在總成本中佔據約3.50美元,功耗比整個SoC少大約95%。所以若開發出只有邊緣AI功能(加上其他一些必要功能,例如記憶體)的晶片,它的成本會更低、功耗更少且體積更小,豈不更好?
事實上,已經有這樣的晶片了。據說,有多達50家不同的公司正在開發各種各樣的AI加速晶片。在2019年就已經有獨立的邊緣AI晶片鎖定開發工程師,單價約80美元。而如果達到成千上百萬顆的量產,裝置製造商的採購成本會大幅降低,有些甚至可低至1美元(或是更少),而有些則需要幾十美元。現在,我們以智慧型手機邊緣AI晶片作為參考標準,假設邊緣AI晶片的平均成本約為3.50美元。
除了相對便宜之外,獨立的邊緣AI處理器還具有體積小的優勢,功耗也相對較低,僅為1W到10W之間。相比之下,一個由16顆GPU和兩顆CPU組成的資料中心叢集,雖然性能非常強大,成本將高達40萬美元,而且重量達到350磅、耗電達到10萬W。
利用這類已經問世的晶片,邊緣 AI可以為企業帶來更多新的可能性,尤其是在物聯網應用方面。透過使用邊緣AI晶片,企業可以大幅提升在連網裝置端進行資料分析的能力──不僅是收集資料──並將分析結果轉化為行動,從而避免了將大量資料傳送到雲端帶來的成本、複雜性和安全性挑戰。AI晶片可以幫助解決的問題包括:
資料安全和隱私
無論企業如何謹慎小心地保護資料,只要是收集、儲存並將資料傳送到雲端,都會不可避免地使企業面臨網路安全和隱私威脅;隨著時間推移,因應此一風險變得至關重要。世界各國紛紛訂定個資保護相關法規,消費者也逐漸意識到企業正在收集他們的各種資料,而有80%的消費者表示,他們認為企業沒有盡力保護消費者隱私。諸如智慧揚聲器之類的裝置開始在醫院等場合廣泛使用,這些場合對患者隱私的管理十分嚴格。
邊緣AI晶片可在本地處理大量資料,降低個人或企業資料被攔截或濫用的可能性。例如,具有機器學習處理能力的保全攝影機可以透過分析視訊來確定其中哪些部分相關,並只將這部分視訊傳送至雲端,從而降低隱私權洩露的風險。機器學習晶片還可以識別更廣泛的語音指令,從而減少需要在雲端進行分析的音訊。準確的語音辨識功能則有助於智慧揚聲器更精準識別「喚醒詞」,以避免聽到不相關的對話。
連網困難
裝置必須連網才能在雲端處理資料,但是在某些情況下,裝置連網是不切實際的。無人機就是一個例子,其運作位置可能使得維持其連網很困難,而且連網功能本身以及將資料上傳到雲端都會縮短電池壽命。在澳洲新南威爾斯(New South Wales, Australia)以配備嵌入式機器學習功能的無人機巡邏海灘,確保泳客安全;這些無人機不必連結網路就可以識別出被海浪捲走的泳客,或者警告泳客有鯊魚和鱷魚襲擊危險。
(太)大數據
物聯網裝置會生成大量數據。舉例來說,一架Airbus A-350噴射機配備6,000多個感測器,每日飛行航程會產生的數據量達到2.5 TB。在全球範圍內,保全攝影機每天生成的數據約2,500PB。將所有這些數據資料發送到雲端儲存和分析的成本高昂且複雜,將機器學習處理器放置於感測器或攝影機等終端裝置就可以解決這個難題。例如,可以在攝影機中配備視覺處理單元(VPU),也就是一種專用於分析或預處理數位影像的低功耗處理器SoC。借助嵌入式邊緣AI晶片,裝置可以即時分析資料,只有當相關資料需要傳送到雲端進一步分析時才會需要進行傳輸,這可大幅降低儲存和頻寬成本。
功耗限制
低功耗的機器學習晶片甚至可以讓AI運算在透過小型電池供電的裝置上執行,不會消耗過多電力。例如,Arm晶片可以嵌入呼吸器來分析資料,包括吸入肺活量和進入肺部的藥物流量。在呼吸器上完成的AI分析結果將傳送至智慧型手機應用程式,協助醫事專業人員為哮喘患者提供個人化醫療照護。
除了現在已有的低功耗邊緣AI NPU外,很多公司還致力於開發「微型機器學習」方案,也就是在微控制器單元之類的元件上實現深度學習。例如Google正在開發能讓微控制器分析資料的專用版本TensorFlow Lite,將需要發送到晶片外的資料壓縮為只有幾個位元組大小。
低延遲需求
無論是透過有線網路還是無線網路,在遠端資料中心執行AI運算都意味著往返延遲的存在,最佳情況下為1到2 毫秒(ms),最差情況則達到幾十甚至幾百毫秒。使用邊緣AI晶片在裝置端執行AI,可以將延遲降低到奈秒(nanoseconds)等級──這對於需要收集、處理資料並即刻採取行動的應用場景至關重要。
例如自動駕駛車輛必須透過電腦視覺系統收集並處理大量資料以識別物體,同時收集和處理來自感測器的資料以控制車輛各種功能;然後它們必須立即根據這些資料做出決策,像是何時轉彎、煞車或加速,以實現安全行車。為此,自動駕駛車輛必須自己處理在車輛中收集的大量數據。低延遲對機器人應用也很重要;隨著機器人逐漸出現在工廠環境並開始與人類協同工作,低延遲將變得越來越重要。
邊緣AI在大量數據應用至關重要
邊緣AI晶片的普及可能會為消費者和企業帶來重大變化。對消費者而言,邊緣AI晶片可以實現多種功能,從解鎖手機到與語音助理對話,甚至在極端困難的條件下拍攝出令人驚歎的照片,而這些應用都不需要連結網際網路。
但從長遠來看,邊緣AI晶片對企業應用的影響可能更大,它們將把企業的物聯網應用提升到一個全新的境界。由AI晶片驅動的智慧裝置將有助於擴展現有市場,衝擊現有企業,同時改變製造、建築、物流、農業和能源等產業的利潤分配。
收集、詮釋並立即根據大量數據資料採取行動的能力,對於那些仰賴大數據的應用至關重要;未來學家們預測,這類應用將被廣泛佈署,包括視訊監控、虛擬實境、自動駕駛無人機和車輛等等,而邊緣AI晶片就是讓各種裝置取得更高智慧的主角。
附圖:圖1:AI運算技術能佈署在不同位置。
(圖片來源:Deloitte Insights)
圖2:邊緣AI晶片市場規模預測。
(圖片來源: Deloitte Insights)
圖3:三星Exynos 9820的裸晶照片顯示,其中約有5%的面積為AI處理器。
(圖片來源:ChipRebel;注釋:AnandTech)
圖4:蘋果的A12仿生晶片約有7%的面積屬於機器學習的部分。
(圖片來源:TechInsights / AnandTech)
資料來源:https://www.eettaiwan.com/20200604putting-ai-into-the-edge-is-a-no-brainer-heres-why/?fbclid=IwAR3hRYuquNfTq5VzcEWYfqyJotBLBSp4PzLNyMackrs6V43r9NEMhRZ3Ap8
陣列大小限制 在 小不點看世界•Paine吃玩世界旅遊趣 Facebook 的最佳貼文
黑洞到底長什麼樣子?今天4/10晚上就看見了。
我從小就一直覺得有外星人的存在,宇宙根本無法想像,到底是誰敢保證除了地球有生物之外,其他都是一顆球....
然後不要再看那些政論節目了,看看這些根本就是難以想像的另一個世界,別給限制了無限的想像力(腦)!
天大的事
我為什麼要「每天」知道誰跟誰配、誰又「嗆」誰了呢?煩死人了。
煩死人了。世界沒有比這個更重要的事了嗎?台灣沒有比這個更精彩的事了嗎?
明明就有。
台灣時間明天晚上九點,就有一件「天大」的事要發生。科學家同時、同步在六個地點召開全球記者會,宣布人類對宇宙認知的重大突破——人類將第一次看見宇宙黑洞的照片。
這六個點是:華府、聖地牙哥、布魯塞爾、東京、上海、台北。
中研院天文及天文物理研究所主導的「格陵蘭望遠鏡」在2017年底開光,2018年與夏威夷的「次毫米波」陣列、智利的「阿塔卡瑪毫米波」與「次毫米波」陣列連線觀測。
台北因此在明晚的發佈記者會是全球六大連線直播城市之一。
明晚「事件視界望遠鏡」的解析能力,如同「站在美國東岸看到美國西岸的一枚硬幣,或是身在紐約,看見洛杉磯一個高爾夫球上的凹洞。」
如果地球壓縮成一個黑洞,大小大概就是直徑17.4毫米,比一塊錢硬幣還小。如果太陽壓縮成黑洞,大概就是直徑5.84公里的一個小村莊。
明晚要宣布成果的望遠鏡,觀測拍攝的是兩個黑洞:一是銀河系中心的人馬座A*,直徑1270萬公里,一是室女座的M87星系,直徑177億公里。
1270萬公里直徑,是多大一個圓周?177億公里直徑,是多大一個範圍?渺小的人類,用多大的大腦、多深的想像、多強的毅力,在理解宇宙?
匪夷所思。驚心動魄。
黑洞到底長什麼樣子?明天晚上就看見了。
這麼重要的國際貢獻,為什麼不給中研院鼓掌喝采呢?
這麼「天大」的突破,怎麼會還不如蔡賴韓柯趙錢孫李的口角呢?
四月十日晚上八點半,來,看中研院直播:
https://youtu.be/_GsTBTenBZY
美國直播:
https://www.nsf.gov/news/special_reports/blackholes/
———————————————
1)黑洞長什麼模樣?台北與全球五大城市明晚一起揭密
https://udn.com/news/story/7168/3744562
2)把望遠鏡搬到格陵蘭?!觀測黑洞的瘋狂天文學家
http://research.sinica.edu.tw/greenland-telescope-asiaa-che…
3)格陵蘭望遠鏡觀測黑洞 中研院參與跨國研究 https://www.cna.com.tw/news/ait/201805290332.aspx
4)望遠鏡最新成像,銀河中心超大質量黑洞的噴流或直指地球
https://technews.tw/…/supermassive-black-hole-sagittarius-…/
5)https://technews.tw/…/supermassive-black-hole-sagittarius-…/
陣列大小限制 在 林岱樺 Facebook 的最佳解答
提高石化廠安全管理 國際專家獻策 金屬中心舉辦石化產業研討會 邀請全球專家業者經驗分享 獲得中央重視
【2013-07-09 經濟日報 防蝕專輯 黃逢森╱撰稿 】
國內對石化產業之關注重點,一直圍繞在石化廠之安全性以及環保議題上。金屬中心執行經濟部技術處傳統產業加值轉型推動計畫,特別結合國內外石化相關產業舉辦國際研討會。藉由分享先進安全管理做法,對於石化業以及石化設備業而言,也是轉型升級的契機。
金屬中心日前邀請美商GE公司、瑞典公司、中鋼、台灣中油、台灣金屬材料、成功大學等單位學者專家,在金屬中心舉辦「石化設備防蝕及風險評估管理應用國際研討會」,共同針對管線腐蝕與石化廠工安事件間的關聯性、腐蝕之風險評估等,商討提升安全管理之因應策略。相關議題亦受到中央重視,包括經濟部技術處處長林全能、立法委員林岱樺等人亦出席活動。(以下是研討會的重點摘要)
設備自主創新
確保安全高值
主辦單位金屬中心執行長伏和中表示,對環境的保護以及人民的生命安全而言,任何工廠對其工安的落實,都是工業化社會的重要議題。石化產業尤其是龐大而複雜的產業,任何意外都可能對週遭社區、對環境、對經濟產值造成直接重大損失。高雄是石化、金屬的大本營,有6兆的年產值,未來產品的設備必須自主創新,以確保石化產品的高值化、低汙染、高安全性。金屬中心從民國96年開始輔導傳統產業創新及轉型升級,六年來成立76個產業研發聯盟,成功促進50億元投資及1,600個就業機會,對產業發展有很大的助益。這場國際研討會受經濟部技術處委託,邀集國內外重要業者分享石化廠防蝕相關的風險管理經驗,並且共同研擬國內可行之因應策略,對國內石化業者而言相當重要,也將帶動產業發展。
立法委員林岱樺出席活動時表示,經濟、環保絕對有平衡點,高雄有三輕、四輕、五輕,台灣的石化業在世界具有競爭力,但在經濟發展中,環保工安要求平衡點,石化業者要把工安環保的成本,納入設備投資中,讓民眾信任安心,找出更安全、環保、有競爭力的方法。
慎選耐蝕材料
降低加工成本
瑞典公司Mr. Olof Andersson指出,石化廠的管件、控制閥的腐蝕的防治,材料的選擇很重要,要先評估石化廠的 CO2、H2S及O2的濃度,操作的溫度、壓力、酸鹼度等條件,探討腐蝕的原因,有何化學反應。材料的選擇要具備變形量低、耐磨耗、抗腐蝕等功能,使用合適的耐蝕加工處理,可節省訂購更換新品的成本和時間。
美國奇異日本非破壞檢查機械營業本部長漆原將樹說,奇異公司對於管件內部使用數位繞性內視鏡,可在相對較想的開口進入管線內部,透過數位影像與量測來評估管路內表面的狀況,針對管對接的銲道品質問題,提到相位陣列式超音波及所謂的「 TOFD衍射時間飛行檢測法」等較先進檢測技術,相位陣列超音波根據使用許多微小壓電晶片利用時間延遲的方式在不同時間激發每一個晶片,在經過訊號處理而可以產生音波聚焦或是扇形掃瞄的效果,對於銲道超音波檢測提供更為影像化的判定方式,更在厚度限制上已逐漸取代射線檢測。
落實管線防蝕
降低意外損失
成功大學教授蔡文達表示,根據調查數據,石化工廠爆炸事件50%以上,皆來自管線受到腐蝕,因而導致意外發生。在美國及其他工業國家,均將防蝕議題建置在標準作業規範中,藉以對腐蝕因素而引發的工安意外加強掌握,並抑制設備腐蝕的因素。同時制定石化設備風險評估作業規範,以確保各方面的安全性。根據美日導入風險管控作業的經驗顯示,落實防蝕做法後,因腐蝕而引發之意外減少了高達70%,整體損失也從占GNP的3~5%下降至0.5%以下。這些數據值得國內石化業者參考借鏡。
中鋼RBI系統
完整風險預測
中鋼公司產品研究組劉宏義,分享該公司建置RBI系統之經驗及作法,中鋼發展出一套以RBI(風險評估)為基礎的歲修檢查方法,融合API581、TWI、勞委會延長設備開放檢查等規範,加上自行發展的DER檢測模式,對設備檢查提供更全面的技術服務。整個中鋼設備歲修檢查工作流程從設備檢測資料庫建立開始,接著進行設備腐蝕地圖╱環路建置及檢測工作規劃,再由兩組人力分別執行 NDT與腐蝕檢測,掌握目前設備之腐蝕、劣化型態與原因分析、風險與失效危害評估,最後提出設備維修與改善建議,及下次歲修檢測或替代檢查建議,完成整個風險評估檢查。
由於具有NDT及材料腐蝕兩組專長人員進行,NDT提供設備目前劣化狀況,而材料腐蝕專家進一步掌握劣化原因及壽命預測。兩種不同方式檢查結果集合後,提供完整設備的風險預測。相關RBI檢查技術也經常服務國內大小石化廠,獲得一致好評。
制定管線法規
落實清查工作
中油煉製研究所經理蘇俊吉,針對製程管線機械完整性提出說明,根據國外重大事故統計發現製程管線發生頻率最高,約占34%,其中以機械性損傷為主因,約占41%,相較於壓力容器、儲槽,管線結構、內容物組成、相態以及流速等變性異性大,再加上管線無法進入檢查、需拆保溫和搭架等因素,在管理上存在較多不確定因素;這次提出在美國職業安全與健康管理局(OSHA)製程安全管理(PSM)中之機械完整性(MI)架構下,利用風險基準檢查(RBI)來篩選出關鍵性管線,並充分應用工業認可和一般可接受好的美國石油協會(API)相關規範,來建立檢查和評估程式,最後並以包覆層下腐蝕(CUI)實例來說明如何以MI、RBI和API來落實清查、檢查、改善和預防等工作,防範事故於未然。
發表「石化設備腐蝕之先進檢測技術」的台灣金屬材料公司李秉鴻博士表示,由92年開始引進導波長距離管線檢測技術,10年以來多為中油、台塑與台電等公司提供超聲導波檢測服務,主要目的是為了遍佈石化廠內的眾多管線進行整體腐蝕檢測。管線為了保溫與保冷會在管線外部包覆一層材料,降低了傳統非破檢測技術施作的可能性,超聲導波因為低頻超音波在管線上具長距離傳遞之能力,成為檢測包覆下腐蝕之最佳檢測技術。
石化設備中的高壓容器國內已有相關法規督促設備定期檢查,然而發生事故機率最高的管線卻無國內法規來遵循,石化業者無所適從,為了國人生命財產安全的保障,建議國內立法單位能儘速進行制定管線定期檢查之法規。
(以上半版為經濟部贊助,金屬中心廣告)
陣列大小限制 在 #請益c陣列可以宣告到多大 - 軟體工程師板 | Dcard 的推薦與評價
如題,請問各位大大,我宣告一個陣列長度為10的9次方不行,可是10的8次 ... stack記憶體有限制不能宣告這麼大你可以宣告在heap或global heap就是用new ... ... <看更多>
陣列大小限制 在 堆疊- 使用鏈結實作(C 語言動態記憶體宣告) 的推薦與評價
使用陣列實作堆疊,會受到陣列大小必須事先宣告好的限制,我們可以使用鏈結(link)的方式來實作堆疊,以動態記憶體宣告的方式來新增每一個元素。 ... <看更多>
陣列大小限制 在 [問題] 陣列大小有上限嗎- 看板C_and_CPP 的推薦與評價
#include<iostream>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#include <fstream>
#include <math.h>
using std::cout;
using std::endl;
using namespace std;
double unif(double &seed);
double norm(double mean, double var);
int main(void)
{
double mean = 0;
double SNR =10.0;
double var =1/pow(10 , SNR/10);
double w[1000][100]={0};
double err = 0;
double total = 10000000;
int t[1000][100] = {0};
double r[1000][100] = {0};
for(int j=0 ; j<100 ;j++)
{
for(int i=0 ; i<1000; i++)
{
t[i][j] = -1;
w[i][j] = norm(mean,var);
r[i][j] = t[i][j]+w[i][j];
if(r[i][j]>=0)
{
err+=1;
}
}
}
ofstream fop("re.txt");
fop<<(err/total);
cout<<"解碼結束"<<endl;
fop.close();
system("pause");
}//////end
double unif(double &seed)
{
double a1=3972.0,a2=4094.0;
double m=2147483647.0;
double seed1,seed2;
seed1 = a1 * seed ;
seed2 = a2 * seed ;
/* control seed < 10^10 */
seed1 = seed1 - (long)(seed1/m) * m ;
seed2 = seed2 - (long)(seed2/m) * m ;
seed = seed1 * 100000.0 + seed2;
seed = seed - (long)(seed/m)*m;
if((seed/m)<0){
return(-1*seed/m);}
else
return(seed/m);
}
double norm(double mean, double var)
{
double sz=0.0,v1,v2,sigma,ans;
double seed1,seed2;
sigma=sqrt(var);
seed1=rand()+clock()*123;
v1=unif(seed1);
seed2=fabs(clock()*1236*var+rand()-seed1);
v2=unif(seed2);
sz=cos(2.*3.14*v1)*sqrt(-2.*log(v2));
ans=sz*sigma+mean;
return(ans);
}
我想請教的問題是當我把w[1000][100]裡面的1000改成10000然後其它像
t[][]還有r[][]跟i都改成對應的10000後,程式就出現overflow的訊息
這是因為我設定超過陣列的上限嗎,因為像1000就可以執行但改成
10000就不能,請問板上的高手這是甚麼問題呢,感謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.122.235
... <看更多>
相關內容