Haskell Array.Accelerate-forkOS 오류
일부 Data.Array.Accelerate
계산 의 출력을 플로팅하려고 gnuplot
하면 이상한 문제가 발생했습니다. 인터프리터를 통해 실행하면 바로 Haskell 데이터를 플로팅하거나 Accelerate 값을 인쇄하는 것처럼 모든 것이 정상이지만 Accelerate 데이터를 플로팅하려는 시도는 실패합니다. 주어진 오류는 forkOS_entry: interrupted
입니다.
나는 그 이후로 내가 더 유닉스가되어야하고 각 프로그램에서 한 가지 (잘)해야한다는 것을 깨달았다. 그러나 이것이 실패하는 이유를 찾는 데 관심이 있습니다. 아래에 최소 코드 샘플이 포함되어 있습니다.
import Prelude hiding (zip,zipWith)
import Graphics.Gnuplot.Simple
import Data.Array.Accelerate
-- import Data.Array.Accelerate.Interpreter
import Data.Array.Accelerate.CUDA
f :: Vector Float -> Vector Float -> Acc (Vector Float)
f xs ys = let xs' = use xs
ys' = use ys
in
(zipWith (*) xs' ys')
n=10::Int
points = toList.run $ f (fromList (Z:.n) [1..10]) (fromList (Z:.n) [-5..4])
main = plotList [] points
업데이트 2014/09/11
을 바탕으로 user2141650
'의 제안 (감사합니다!)에 마지막 줄을 변경
plotList [] $! points
문제를 해결합니다. 실제로 이것은 플롯이 실제로 나타나게하는 반면, 이것이 없으면 프로그램은 오류가 있든 없든 완료되지만 실제로는 플롯을 표시하지 않습니다. 나는 이것이 작성 되었다면 대답으로 받아 들일 것이라고 생각하지만, 무슨 일이 일어나고 있는지 아는 것이 여전히 좋을 것입니다.
관련 가능성 :
(덧붙여서 문법 편집을 그만두세요. 질문에는 문제가 없습니다. 저는 원어민이고 제가 의미하는 바를 정확하게 작성합니다. 그래도 기여해 주셔서 감사합니다.)
코멘트에서 언급했듯이 가속 계산이 느리게 호출 될 때 GPU에서 gnuplot과 가속의 인터리브 상호 작용 때문일 수 있습니다. 세부 사항을 안다고 말할 수는 없지만이 [0]은 관련성이있는 것 같습니다. Accelerate가 이미 청구했기 때문에 gnuplot은 GPU를 사용할 수 없지만 Accelerate는 완전히 평가 될 때까지 GPU를 출시하지 않습니다. 또는 그 gnuplot이 Accelerate 전에 GPU 를 주장합니다 . 털이 많은 문제이며 Accelerate의 github 문제 추적기에 언급이 필요할 수 있습니다.
[0] https://github.com/AccelerateHS/accelerate/issues/48
참고 URL : https://stackoverflow.com/questions/21563551/haskell-array-accelerate-forkos-error
'Development Tip' 카테고리의 다른 글
한 번에 하나의 셸 스크립트 인스턴스 만 실행되도록하는 빠르고 간단한 방법 (0) | 2020.10.30 |
---|---|
OCR을 통해 전체 텍스트를 생성하기 위해 인덱싱 서비스 및 MODI를 얻는 방법은 무엇입니까? (0) | 2020.10.30 |
Spark 1.4.0 및 Tachyon 0.6.4에서 OFF_HEAP Storage를 사용할 때 오류 (0) | 2020.10.30 |
BitTorrent : 다운로드가 시작되지 않음 (0) | 2020.10.30 |
Board View의 Burndown에서 주말 제거 (TFS 2012-Scrum 2.0) (0) | 2020.10.30 |