2009-10-07 3 views
2

저는 경험 많은 C#/.NET 개발자입니다. 실제로 FPGA는 다른 복잡성과 비슷하기 때문에이 모든 것이 관련이 없습니다. 내 수준의 능력은 C#처럼 전문가가 아니지만 (때때로 문법/고급 개념으로 인해 어려움을 겪고 있음에도 불구하고 자주 보지는 않지만) 사장님이 FPGA를 사용하고 참여하도록 권장합니다. 나는 중학교 개발자로서 낙담하지 않고 놀랍습니다. 복잡한 기술입니다.)3 차원 렌더링/모델링을위한 FPGA

내 질문은, FPGA를 배우는 가장 좋은 방법은 무엇입니까? 나는 등을 모으고있다.

나는 scalable 3D 모델링과 렌더링 (이상적으로는 사용자가 즉각적인 응답을 기다리는 곳)에서 CUDA가 인기가 있지만 내 상사에 따르면 빠르지는 않다.

FPGA가 이러한 종류의 프로젝트를 진행하는 방법입니까?

감사합니다.

답변

7

솔직히 말해서 나는 당신의 상사가 잘못되었다고 생각합니다. NVIDIA와 AMD는 가속화 된 3D 렌더링을 위해 설계된 실제 실리콘 하드웨어를 판매하고 있습니다. 특정 문제가 기존 쉐이더/CUDA 패러다임에 매핑되지 않는 경우가 아니면 구성 가능한 하드웨어 장치가 경쟁 할 방법이 없습니다. 이것은 최고의 FPGA 기반 CPU (자일링스의 MicroBlaze, Altera의 Nios)조차도 로우 엔드 임베디드 ARM 코어와 비교해도 장난감과 같은 이유 때문이다. (종종 유용한 장난감이지만 마음에 들지는 않지만 사용하지 않는 FPGA 게이트 공간을 가진 디자인을 제외하고는 경쟁력이 없습니다.)하지만 FPGA 및 HDL 프로그래밍을 배우는 것이 좋습니다. 이것은 "책 수집"이 실제로 당신을 도울 수없는 영역입니다. 당신이해야 할 일은 싼 개발 보드 (시장에 $ 100-200US 범위에있는 많은 것들이 있습니다.)와 일치하는 툴체인을 다운로드하고 코드 작성 및 테스트를 시작하는 것입니다.

+3

UM ... 군대 + RADAR + FPGA = AEGIS. 또한 500 만 게이트 FPGA에서 가능한 수준 또는 병렬 처리가 가능하지 않습니다. FPGA에서 CPU를 사용하는 것은 멋지지만 처음에는 구성 가능한 회로를 사용하는 목적에 어긋납니다. 저가형 ARM CPU가 동일한 CPU의 FPGA 구현을 이길 것이라는 데는 동의하지만 실리콘에있는 이유는 무엇인지 동의 할 것입니다. FPGA를 배우는 힘과 이유는 CPU를 개발하는 것이 아닙니다. – Spence

+1

타오르는 것을 중지하십시오. 예, 가속화 된 렌더링 (또는 특정 작업)을 목표로하는 것이면 가능합니다. 지역 소매 업체의 300 달러짜리 GPU에는이 문제에 전념하는 수십억 개의 게이트가 있으며 현대 FPGA 합성에서 얻을 수있는 50-100MHz 대신 GHz 속도로 실행됩니다. FPGA에는 구성 가능한 장점이 있습니다. 확실히 원시 트랜지스터보다 빠릅니다. –

0

오늘날 현대 PC와 함께 제공되는 하드웨어 가속을 사용하는 방법을 배우십시오. 하드웨어 가속을 사용하는 OpenGL이나 DirectX (요즘은 무엇이든)를 사용하면 성능이 향상 될 것입니다.

응용 프로그램이 사용자 정의 임베디드 장치에서 실행될 것 같으면 자신의 하드웨어를 만들고 싶지만 PC 응용 프로그램의 경우 비용이 너무 많이 들고 이미 소프트웨어 솔루션 성능 향상을 위해 미친 작업을 수행했습니다.

의견 : 3D 게임 기술에 투입된 모든 작업을 활용하십시오.

0

앤디 로스 (Andy Ross)가 말했듯이, 필자는 FPGA가 그런 유형의 문제를 해결하기 위해 원하는 방식이다. 어떻게 든 PC와 인터페이스해야 할 것이다.

저는 DevKit을 시작하고 그걸 가지고 놀 것입니다. LED가 깜박이도록하십시오 - 새로운 임베디드 장치로 시작할 때 항상 가장 어려운 부분이었습니다. 아마도 DevBoard에있는 통신 (RS232/TCP)을 얻을 수 있습니다. 그런 다음 몇 가지 수학 함수를 구현하여 매개 변수를 가져 오거나 결과를 전달합니다.

0

글쎄, 확장 가능한 3D 렌더링을 FPGA에서. 어떻게 접근할까요? FPGA는 고전적인 simd 아키텍처를 원하는대로 (또는 제한) 데이터 크기로 확장하는 데 적합합니다. 100mhz에서도 허용 수준까지 처리 할 수있는 뛰어난 병렬 처리를 사용하면 메모리 대역폭과 속도 만 제한적입니다. 당신이 뱉어 낸 데이터를 사용할 수 있으려면 그래픽 컨트롤러가 필요하다는 것을 잊지 마십시오. 당신은 본질적으로 모든 하드웨어가 복잡한 작업을 수행하도록 할 것입니다. SIMD 프로세서로 3D 렌더링을 할 수 있습니까? 하드웨어 디자인은 무엇입니까?

다른 많은 사람들이 ITT를 지적했습니다. nvidia의 CUDA는 훌륭한 대안이지만 새로운 fermi 아키텍처는 유망한 것으로 보입니다.하지만 저비용, 저전력 및 저전력 소모를 원하는 경우 CUDA를 사용하는 것이 좋습니다. 작업을 해결하는 데 큰 도움이되었지만 작업에 휠과 배터리가 있으면 작업이 복잡해집니다.

그래픽보다 fpgas에 더 적합한 작업은 생물학적 계산이며 그래픽보다 큰 병렬 처리를 필요로하는 문제 공간이라고 생각합니다.