2011-01-12 26 views
10

Khi biên dịch mã CUDA, bạn phải chọn kiến ​​trúc mà mã của bạn đang được tạo. nvcc cung cấp hai thông số để xác định cấu trúc này, về cơ bản:Giá trị mặc định cho các tùy chọn mã và mã khi sử dụng nvcc là gì?

  • arch xác định arquictecture ảo, có thể compute_10, compute_11 vv
  • code quy định cụ thể kiến ​​trúc thực tế, mà có thể là sm_10, sm_11 vv

Vì vậy, một lệnh như thế này:

nvcc x.cu -arch=compute_13 -code=sm_13 

Sẽ tạo mã 'cubin' cho các thiết bị có khả năng tính toán 1.3. Nêu tôi sai vui long chân chỉnh tôi. Mà tôi muốn biết đó là giá trị mặc định cho hai tham số này? Kiến trúc mặc định mà nvcc sử dụng khi không có giá trị choarchhoặccodeđược chỉ định?

+2

Nếu bạn biên dịch mã bằng cách sử dụng cờ tiết, bạn sẽ thấy kiến ​​trúc ảo mặc định được sử dụng. –

Trả lời

8

Ok, cuối cùng tôi đã xoay sở để khám phá các giá trị mặc định. Lỗi của tôi vì không đọc toàn bộ chương về biên dịch GPU trong tài liệu NVCC từ đầu đến cuối. Vì vậy,

nvcc x.cu 

là tương đương cho

nvcc x.cu –arch=compute_10 -code=sm_10,compute_10 

Đó là những giá trị mặc định. Việc biên dịch được thực hiện theo mặc định cho kiến ​​trúc ảo compute_10 và kết quả từ việc biên dịch sẽ bao gồm mã CUBIN cho kiến ​​trúc thực sự sm_10 và mã lắp ráp PTX cho kiến ​​trúc compute_10, sẽ được biên dịch lại 'đúng lúc' bởi trình điều khiển CUDA nếu kiến ​​trúc của bạn lớn hơn sm_10.

+2

Kiến trúc mặc định [giờ thay đổi theo phiên bản CUDA] (http://stackoverflow.com/questions/28932864/cuda-compute-capability-requirements), với các bản phát hành mới hơn. –

2

Tôi cho rằng mặc định là compute_10, vì bạn không thể sử dụng bất kỳ tính năng nào trừ khi bạn chỉ định rõ ràng đó là những gì bạn muốn. (Có lẽ tài liệu NVCC đi kèm với bộ công cụ CUDA chỉ định, nhưng tôi không thể tìm thấy liên kết trực tuyến).

+0

Tôi đoán bạn nói đúng. Tôi không thể tìm thấy thông tin đó khi tôi xem xét tài liệu NVCC. Tôi sẽ nhìn lại một lần nữa. – Auron

+0

Hmm, có vẻ như giá trị mặc định cho '-code' là giá trị được chỉ định trong' -arch', nhưng tôi không thể tìm thấy giá trị mặc định cho '-arch'. – Auron

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