2010-07-09 36 views
14

Có thể sử dụng các pragmas mở trong các tệp CUDA (không phải trong mã nhân) không?Sử dụng openMP trong mã máy chủ cuda?

Tôi sẽ kết hợp tính toán CPU và CPU. Nhưng trình biên dịch nvvc không thành công với "không thể tìm thấy tùy chọn Không xác định 'openmp'", nếu tôi liên kết porgram với tùy chọn openmp (dưới linux)

Một cách giải quyết là sử dụng các chỉ số openMP trong các tệp c/C++.

Trả lời

14

Tôi vừa mới tìm thấy này

http://www.cse.buffalo.edu/faculty/miller/Courses/CSE710/heavner.pdf

trang 25 nói:

Với gcc: - # include omp.h

Thêm -fopenmp cờ

Với nvcc, đây phải là -Xcompiler -fopenmp vì điều này cần được chuyển trực tiếp đến gcc -Xcompiler chuyển cờ trực tiếp tới trình biên dịch máy chủ

Thêm cờ -lgomp trong giai đoạn liên kết.

Tôi đã không thử nó chưa ...

+0

Cẩn thận đối phó và dán các đối số. Nếu bạn nhìn kỹ các dấu gạch ngang trên -Xcompiler -fopenmp thì khác với dấu gạch ngang dòng lệnh. – Tristan

+0

Dấu gạch ngang được cố định ngay bây giờ. –

0

Giải pháp cho Visual Studio tìm thấy từ nvidia-forum:

thêm '/ openmp'-cờ the Extra C++ Options trong CUDA xây dựng các quy tắc. Tôi sẽ thử giải pháp linux sau.

2

Tôi đã thử viết tham số trong "Tùy chọn trình biên dịch bổ sung" nhưng nó không hoạt động.

Những gì tôi đã làm cho Visual Studio 2010 và CUDA 4.2:

Trong Project Properties -> Configuration Properties -> CUDA C/C++ -> Command Line -> Options bổ sung: -Xcompiler "/ OpenMP"

Điều này dẫn đến hai tham số -Máy xay trong lệnh xây dựng kết quả nhưng không gây ra bất kỳ vấn đề nào và hoạt động thành công.

Các vấn đề liên quan