[討論] 關於程式碼編譯器的效能與道德議題

看板CodeJob作者 (CARD)時間7年前 (2017/03/13 03:28), 7年前編輯推噓2(209)
留言11則, 4人參與, 最新討論串1/1
各位好 小弟又來問個困擾的問題 因為我覺得會影響全宇宙 目前在評估精確度與效能 我發現相同硬體架構平台 但藉由不同作業系統運算 相同程式碼跑出不同結果 而且運算時間也差異極大 都是使用同一版號編譯器 近年常聽聞測速軟體作弊 但我覺得精確度更重要吧 會影響全世界的科學發展 一直以來都有算不準問題 畢竟要達到量子尺度運算 也需要非常精確的浮點數 Linux系統似乎比Win10好 但也有可能是編譯器問題 但同樣是 g++ 4.9.2 版 效能竟然相差57倍以上 執行程式時皆用檔案輸出 不知道各位前輩看法如何 先謝過各位前輩細心教導 以下是我的測試程式碼; http://cargon.net/GMEMD/bench_precision.cpp -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.26.170 ※ 文章網址: https://www.ptt.cc/bbs/CodeJob/M.1489346903.A.507.html ※ 編輯: a34021501 (1.171.26.170), 03/13/2017 03:45:41

03/13 05:12, , 1F
其實我想知道為何記從憶體讀資料與函數回傳結果不同。
03/13 05:12, 1F

03/13 09:23, , 2F
請你先把編譯參數列出來.最佳化過了嗎?沒最佳化差很大
03/13 09:23, 2F

03/13 09:24, , 3F
然後請你重測用VC++最佳化後跟linux g++的結果.
03/13 09:24, 3F

03/13 09:26, , 4F
大型演算法系統 g++最佳化根本比不過vc++的速度差超大
03/13 09:26, 4F
我編譯這個程式碼在兩個平台都未加參數,是使用預設參數 其實有想過用 AMD x86 Open64 Compiler 但僅支援 Linux 但是要以科學精神評估不同平台的效能應該使用同樣編譯器

03/13 11:00, , 5F
hi there, you should probably consider C_and_cpp board
03/13 11:00, 5F

03/13 11:01, , 6F
other than mass this board up.
03/13 11:01, 6F

03/13 11:03, , 7F
還是你想要發包請人閱讀你的文章?總有人會願意拿錢的
03/13 11:03, 7F
我想這仍然是值得所有程式設計者與業主討論的議題 畢竟我的程式碼已經解決了Win10與Linux的輸出問題 而精確度與效能的議題對某些產業會影響品質與產能 例如有些測量會以重複測量許多次計算平均與標準差   ※ 編輯: a34021501 (36.229.39.135), 03/13/2017 16:18:26

03/13 17:01, , 8F
我才說你這樣要怎樣比?根本沒意義..g++當時是為unix
03/13 17:01, 8F

03/13 17:01, , 9F
like 環境開發的,不是為win開發的,你不最佳化要比啥?
03/13 17:01, 9F

03/13 17:02, , 10F
VC++專為win開發的編譯器.他們最熟win底層,真的打趴g++
03/13 17:02, 10F

03/14 22:45, , 11F
排字排很久厚
03/14 22:45, 11F
目前沒有打算裝 Visual Studio, 況且我寫的程式只是 Run 在 Console 上的小程式而已 不過我觀察了我的程式執行時使用關聯 DLL 檔之後發現我的小程式似乎是用 Wow64 平台 http://i.imgur.com/7VUFmsL.png
那我覺得可能要把新CPU的指令集新增至這幾個DLL檔 如此一來就能減少等待,不過有聽聞將所有 Windows 系統檔案重新編譯不知是否觸法... 況且 Linux 底下的 g++ 在編譯我的測試程式時擁有 57 倍的性能是個不小的 SpeedUp!! 不過也有可能是 Linux 系統在運算 sqrt() 的時候有作弊的嫌疑,若是如此我先道歉了~ ※ 編輯: a34021501 (36.229.39.135), 03/15/2017 19:44:18 各位好,我找到 Linux 作弊的方法了!不過也有可能是我的錯,之前我是用AMD舊版驅動 今天在裝了 Radeon Software Crimson ReLive Edition 17.2.1 之後效能已經超越Linux (whql-win10-64bit-radeon-software-crimson-relive-17.2.1-feb28.exe) 此版驅動程式大小有 512MB 且實際占用硬碟空間 513MB 與以往相比已達到 2^9 的門檻 因為據我的觀察,以往的驅動程式大小都是 2^8 之流! (即未達到 512MB 之檔案大小) http://i.imgur.com/1C1o2Zb.png
使用 NTCore 的 ExplorerSuite 可看出 DLL 已更新 感謝 AMD 的努力與付出,在此為這場烏龍事件向 AMD 深深的一鞠躬道歉! Apologize!! ※ 編輯: a34021501 (36.229.39.135), 03/16/2017 19:56:38
文章代碼(AID): #1OnQ5NK7 (CodeJob)