1{
2 lib,
3 bootstrapData,
4 db,
5}:
6
7bootstrapData
8// {
9 /**
10 All CUDA capabilities, sorted by version.
11
12 NOTE: Since the capabilities are sorted by version and architecture/family-specific features are
13 appended to the minor version component, the sorted list groups capabilities by baseline feature
14 set.
15
16 # Type
17
18 ```
19 allSortedCudaCapabilities :: [CudaCapability]
20 ```
21
22 # Example
23
24 ```
25 allSortedCudaCapabilities = [
26 "5.0"
27 "5.2"
28 "6.0"
29 "6.1"
30 "7.0"
31 "7.2"
32 "7.5"
33 "8.0"
34 "8.6"
35 "8.7"
36 "8.9"
37 "9.0"
38 "9.0a"
39 "10.0"
40 "10.0a"
41 "10.0f"
42 "10.1"
43 "10.1a"
44 "10.1f"
45 "10.3"
46 "10.3a"
47 "10.3f"
48 ];
49 ```
50 */
51 allSortedCudaCapabilities = lib.sort lib.versionOlder (lib.attrNames db.cudaCapabilityToInfo);
52
53 /**
54 Mapping of CUDA micro-architecture name to capabilities belonging to that micro-architecture.
55
56 # Type
57
58 ```
59 cudaArchNameToCapabilities :: AttrSet NonEmptyStr (NonEmptyListOf CudaCapability)
60 ```
61 */
62 cudaArchNameToCapabilities = lib.groupBy (
63 cudaCapability: db.cudaCapabilityToInfo.${cudaCapability}.archName
64 ) db.allSortedCudaCapabilities;
65}