-
-
Notifications
You must be signed in to change notification settings - Fork 812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support generation of nvcc -gencode flags #430
Conversation
这种作为includes的扩展辅助接口来提供,不要加到内置api里面去,内置api除了特定编译器的add_xxflags之外,其他接口都是通用的,对不同语言都有可能用到。 请在 https://github.com/xmake-io/xmake/tree/master/xmake/includes 里面添加 function add_cugencode(...)
-- TODO
-- add_cuflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
-- add_ldflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
end 使用方式: includes("add_cugencode.lua")
target("cuda_console")
set_kind("binary")
add_includedirs("inc")
add_files("src/*.cu")
add_cugencode("sm_30", "sm_35", "sm_37", "sm_50", "sm_52", "sm_60", "sm_61", "sm_70")
add_cugencode("compute_70") |
includes 里面没有raise和warnings,连math都没有。 看其他的都是用了一个option中转的,但是对于这个好像也不太合适? |
如果要使用扩展模块,可以定义rule,在自定义脚本域实现它: add_cucodegen.lua -- define rule
rule("cuda.add_gencode")
before_load(function (target)
for _, sm in ipairs(target:values("cuda.gencode")) do
-- target:add("cuflags", "-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
-- target:add("ldflags", "-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
end
end)
rule_end()
-- apply rule
add_rules("cuda.add_gencode")
-- add cuda gencode to target
--
-- e.g.
-- includes("add_cugencode.lua")
-- target("test")
-- set_kind("binary")
-- add_files("src/*.cu")
-- add_cugencode("cm_30", "sm_35")
--
function add_cugencode(...)
add_values("cuda.gencode", ...)
end
|
好像要写成 function add_cugencode(...)
-- apply rule
add_rules("cuda.add_gencode")
add_values("cuda.gencode", ...)
end
|
就你刚这样写好了 add_rules有做过去重处理的 没啥问题 |
cuda 这个模板过于复杂了吧。。。 |
在 cuda10.1 @windows 和 cuda10.1@ubuntu cuda9.2@ubuntu 测试过了 |
我晚上细看下 现在有点事 |
我当初只是随手从cuda的examples里面调了一个 移过来的,你觉得复杂的话,可以改进下,提供个更精简的helloworld |
差不多了 |
按照命名规则是不是应该叫 add_cugencodes ? |
嗯 是的 改成add_cugencodes吧 |
改好了 |
ok, CHANGELOGS.md 里面也更新下吧。。 |
使用
add_cugencodes
添加-gencode
编译选项。Usage: