日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

遭遇破窗理论

發(fā)布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遭遇破窗理论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天學姐運行我的程序,結果總是不對,原本以為注釋掉幾條語句就可以,結果直接崩了。

因為是GPU程序,而我沒辦法使用EmuDebug,所以只能一點點注釋來查錯。剛開始學CUDA,真的不知道如何是好。這個錯誤隱約見過,我覺得是內存訪問越界,可是又不明白,為什么在計算了那么多次之后才越界。

昨晚百思不得其解,今天早上爬起來繼續(xù)看代碼的時候發(fā)現,從一維索引轉二維索引有錯誤,改過來之后,終于沒有再崩潰了。以前沒有發(fā)現,是因為網格剛好比較標準。

雖然能運行了,但結果還是不對。我猜測會不會主機端一個函數有問題,之前是一維訪問判斷邊界,有些復雜。我改成二維數組的訪問方式,于是對了。

這個BUG所造成的效果之前也有看到,布料略微扭曲。只是當時完全不知道為什么會這樣,所以也就沒管。沒想到直接崩了,正好把元兇揪了出來。

?

之前寫GPU端碰撞檢測的時候也有遇到問題,我發(fā)現有幾組數據,每個線程都會對其進行運算,這樣很浪費時間,所以就改成了先由幾個線程計算出來,放入共享內存中,如此就都可以訪問了。

結果程序不但沒快,反而算出來錯誤的結果。我一直不明所以,找了很久也沒找出錯誤來,就將代碼都改回去了。

直到后來布料網格數增加,程序直接崩潰了。我上網搜錯誤,發(fā)現是共享內存申請超過了GPU允許的上限。這才發(fā)現,共享內存由每個block內的線程共用,而我之前,把它當做全局的內存來申請了。

這樣一想,之前的錯誤也就找出原因了。我只有第一個block內的線程計算了這幾組數據,而其他block的線程是無法訪問的。只是由于共享內存大小還沒超出限制,所以沒有提示出錯。

??

想起看程序員修煉之道時的一段話,這正是所謂的破窗理論。一棟大樓破了一扇窗,沒有去修理。大家看到了,會紛紛擲石子打破窗戶來玩。最終大樓會變得破敗不堪。當程序有一些小問題的時候,我并沒有去管他,直到后來系統(tǒng)崩潰了,回過頭來才發(fā)現,這些看似不起眼的小問題背后隱藏著的是很深的隱患。我總以為這些是莫名其妙的錯誤,其實都有根據可循。

??

現在程序依然有些問題,只是達到了注釋掉幾條語句就可以的效果,想要少注釋一些卻又不行了。這次調了很久,還是想破了腦袋也想不明白。原本想這次不要再被破窗理論控制,可心有余而力不足。想來還是我經驗不足,查錯誤只能靠猜,猜來猜去浪費了很多時間。

如今該猜的都猜過了,我只能想要不要把所有的一維索引都換成二維,或者干脆把代碼移到CPU上來調試,只是現在手頭的活要干不完了,所以不能再管這段舊代碼。還是先記下來,等以后閑暇的時間再看吧。

轉載于:https://www.cnblogs.com/luluathena/archive/2010/09/03/1817084.html

總結

以上是生活随笔為你收集整理的遭遇破窗理论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。