Skip to content

Commit 758585b

Browse files
committed
fix IEnum->IReadonlyList
1 parent 1848610 commit 758585b

File tree

13 files changed

+69
-45
lines changed

13 files changed

+69
-45
lines changed

TensorShader/Field.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ public void AddUpdater(Updater updater) {
239239
}
240240

241241
/// <summary>更新則を追加</summary>
242-
public void AddUpdaters(IEnumerable<Updater> updaters) {
242+
public void AddUpdaters(IReadOnlyList<Updater> updaters) {
243243
foreach (Updater updater in updaters) {
244244
AddUpdater(updater);
245245
}

TensorShader/Flow.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public static Flow FromOutputs(params OutputNode[] outnodes) {
109109
/// <param name="innodes">入力ノードリスト</param>
110110
/// <param name="tracenodes">フロー関連ノード</param>
111111
/// <remarks>フロー関連ノードがnullであるなら入力ノードから到達できるノードをフロー関連ノードとする</remarks>
112-
internal static List<Node> ExecutionOrderSort(IEnumerable<InputNode> innodes, List<Node> tracenodes = null) {
112+
internal static List<Node> ExecutionOrderSort(IReadOnlyList<InputNode> innodes, List<Node> tracenodes = null) {
113113
List<Tensor> input_tensors =
114114
innodes
115115
.Where((node) => node.Tensor is not null)

TensorShader/NdimArray/NdimArray.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,15 @@ public virtual NdimArray<T> this[int index] {
195195
}
196196

197197
/// <summary>データリスト</summary>
198-
public IEnumerable<(int index, NdimArray<T> data)> DataList {
198+
public (int index, NdimArray<T> data)[] DataList {
199199
get {
200+
(int index, NdimArray<T> data)[] datas = new (int index, NdimArray<T> data)[Batch];
201+
200202
for (int i = 0; i < Batch; i++) {
201-
yield return (i, this[i]);
203+
datas[i] = (i, this[i]);
202204
}
205+
206+
return datas;
203207
}
204208
}
205209

TensorShader/Parameters.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
namespace TensorShader {
77
/// <summary>パラメータコンテナ</summary>
88
public class Parameters {
9-
private readonly List<ParameterField> parameter_fields;
9+
private readonly IReadOnlyList<ParameterField> parameter_fields;
1010

1111
/// <summary>パラメータ数</summary>
1212
public int Count => parameter_fields.Count;
1313

1414
/// <summary>コンストラクタ</summary>
15-
public Parameters(IEnumerable<ParameterField> parameter_fields) {
16-
this.parameter_fields = new List<ParameterField>(parameter_fields);
15+
public Parameters(IReadOnlyList<ParameterField> parameter_fields) {
16+
this.parameter_fields = parameter_fields;
1717
}
1818

1919
/// <summary>リストからキャスト</summary>
@@ -28,22 +28,22 @@ public static implicit operator List<ParameterField>(Parameters parameters) {
2828

2929
/// <summary>和集合</summary>
3030
public static Parameters operator +(Parameters p1, Parameters p2) {
31-
return new Parameters(p1.parameter_fields.Union(p2.parameter_fields));
31+
return new Parameters(p1.parameter_fields.Union(p2.parameter_fields).ToList());
3232
}
3333

3434
/// <summary>積集合</summary>
3535
public static Parameters operator *(Parameters p1, Parameters p2) {
36-
return new Parameters(p1.parameter_fields.Intersect(p2.parameter_fields));
36+
return new Parameters(p1.parameter_fields.Intersect(p2.parameter_fields).ToList());
3737
}
3838

3939
/// <summary>差集合</summary>
4040
public static Parameters operator -(Parameters p1, Parameters p2) {
41-
return new Parameters(p1.parameter_fields.Except(p2.parameter_fields));
41+
return new Parameters(p1.parameter_fields.Except(p2.parameter_fields).ToList());
4242
}
4343

4444
/// <summary>条件抜き出し</summary>
4545
public Parameters Where(Func<ParameterField, bool> predicate) {
46-
return new Parameters(parameter_fields.Where(predicate));
46+
return new Parameters(parameter_fields.Where(predicate).ToList());
4747
}
4848

4949
/// <summary>更新則を追加</summary>
@@ -62,7 +62,7 @@ public Parameters AddUpdater(Func<ParameterField, Updater> gen_updater) {
6262

6363
/// <summary>更新則を追加</summary>
6464
/// <returns>メゾットチェーン可</returns>
65-
public Parameters AddUpdaters(Func<ParameterField, IEnumerable<Updater>> gen_updater) {
65+
public Parameters AddUpdaters(Func<ParameterField, IReadOnlyList<Updater>> gen_updater) {
6666
if (parameter_fields.Count <= 0) {
6767
throw new InvalidOperationException(ExceptionMessage.EmptyList());
6868
}

TensorShader/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121

2222
[assembly: Guid("e6d7e72c-eb7a-4697-9b1a-3e87ba76323a")]
2323

24-
[assembly: AssemblyVersion("5.5.1.*")]
24+
[assembly: AssemblyVersion("5.5.3.*")]
2525

2626
[assembly: InternalsVisibleTo("TensorShaderTest")]

TensorShaderCudaBackend/Dll/CudaDll.cs

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -74,113 +74,133 @@ static CudaDll() {
7474
}
7575
}
7676

77-
static IEnumerable<(int major, int minor)> VersionList {
77+
static IReadOnlyList<(int major, int minor)> VersionList {
7878
get {
79+
List<(int major, int minor)> versions = new();
80+
7981
for (int major = 11; major >= 10; major--) {
8082
for (int minor = 9; minor >= 0; minor--) {
81-
yield return (major, minor);
83+
versions.Add((major, minor));
8284
}
8385
}
86+
87+
return versions;
8488
}
8589
}
8690

87-
static IEnumerable<string> NvcudaLibraryNames {
91+
static IReadOnlyList<string> NvcudaLibraryNames {
8892
get {
93+
List<string> libnames = new();
94+
8995
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
90-
yield return "nvcuda.dll";
96+
libnames.Add("nvcuda.dll");
9197
}
9298
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) {
93-
yield return "libcuda.so";
99+
libnames.Add("libcuda.so");
94100
}
95101
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) {
96-
yield return "libcuda.dylib";
102+
libnames.Add("libcuda.dylib");
97103
}
98104
else {
99105
throw new NotSupportedException(RuntimeInformation.OSDescription);
100106
}
107+
108+
return libnames;
101109
}
102110
}
103111

104-
static IEnumerable<string> CudaLibraryNames {
112+
static IReadOnlyList<string> CudaLibraryNames {
105113
get {
114+
List<string> libnames = new();
115+
106116
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
107117
foreach ((int major, int minor) in VersionList) {
108-
yield return $"cudart64_{major}{minor}.dll";
118+
libnames.Add($"cudart64_{major}{minor}.dll");
109119
}
110120

111-
yield return "cudart64.dll";
121+
libnames.Add("cudart64.dll");
112122
}
113123
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) {
114124
foreach ((int major, int minor) in VersionList) {
115-
yield return $"libcudart.so.{major}.{minor}";
125+
libnames.Add($"libcudart.so.{major}.{minor}");
116126
}
117127

118-
yield return "libcudart.so";
128+
libnames.Add("libcudart.so");
119129
}
120130
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) {
121131
foreach ((int major, int minor) in VersionList) {
122-
yield return $"libcudart.{major}.{minor}.dylib";
132+
libnames.Add($"libcudart.{major}.{minor}.dylib");
123133
}
124134

125-
yield return "libcudart.dylib";
135+
libnames.Add("libcudart.dylib");
126136
}
127137
else {
128138
throw new NotSupportedException(RuntimeInformation.OSDescription);
129139
}
140+
141+
return libnames;
130142
}
131143
}
132144

133-
static IEnumerable<string> NvrtcLibraryNames {
145+
static IReadOnlyList<string> NvrtcLibraryNames {
134146
get {
147+
List<string> libnames = new();
148+
135149
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
136150
foreach ((int major, int minor) in VersionList) {
137-
yield return $"nvrtc64_{major}{minor}_0.dll";
151+
libnames.Add($"nvrtc64_{major}{minor}_0.dll");
138152
}
139153

140-
yield return "nvrtc64.dll";
154+
libnames.Add("nvrtc64.dll");
141155
}
142156
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) {
143157
foreach ((int major, int minor) in VersionList) {
144-
yield return $"libnvrtc.so.{major}.{minor}";
158+
libnames.Add($"libnvrtc.so.{major}.{minor}");
145159
}
146160

147-
yield return "libnvrtc.so";
161+
libnames.Add("libnvrtc.so");
148162
}
149163
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) {
150164
foreach ((int major, int minor) in VersionList) {
151-
yield return $"libnvrtc.{major}.{minor}.dylib";
165+
libnames.Add($"libnvrtc.{major}.{minor}.dylib");
152166
}
153167

154-
yield return "libnvrtc.dylib";
168+
libnames.Add("libnvrtc.dylib");
155169
}
156170
else {
157171
throw new NotSupportedException(RuntimeInformation.OSDescription);
158172
}
173+
174+
return libnames;
159175
}
160176
}
161177

162-
static IEnumerable<(int version, string libname)> CudnnLibraryNames {
178+
static IReadOnlyList<(int version, string libname)> CudnnLibraryNames {
163179
get {
180+
List<(int version, string libname)> libnames = new();
181+
164182
int[] cudnn_versions = new int[] { 8, 7 };
165183

166184
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
167185
foreach (int version in cudnn_versions) {
168-
yield return (version, $"cudnn64_{version}.dll");
186+
libnames.Add((version, $"cudnn64_{version}.dll"));
169187
}
170188
}
171189
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) {
172190
foreach (int version in cudnn_versions) {
173-
yield return (version, $"libcudnn.so.{version}");
191+
libnames.Add((version, $"libcudnn.so.{version}"));
174192
}
175193
}
176194
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) {
177195
foreach (int version in cudnn_versions) {
178-
yield return (version, $"libcudnn.{version}.dylib");
196+
libnames.Add((version, $"libcudnn.{version}.dylib"));
179197
}
180198
}
181199
else {
182200
throw new NotSupportedException(RuntimeInformation.OSDescription);
183201
}
202+
203+
return libnames;
184204
}
185205
}
186206

TensorShaderCudaBackend/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121

2222
[assembly: Guid("d0343c7a-36a5-4f87-89d9-c0bff56721f7")]
2323

24-
[assembly: AssemblyVersion("5.5.1.*")]
24+
[assembly: AssemblyVersion("5.5.3.*")]
2525

2626
[assembly: InternalsVisibleTo("TensorShaderCudaBackendTest")]

TensorShaderCudaBackendTest/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020

2121
[assembly: Guid("6f14bf0a-748a-4f30-89b8-e42adc2e7480")]
2222

23-
[assembly: AssemblyVersion("5.5.1.*")]
23+
[assembly: AssemblyVersion("5.5.3.*")]

TensorShaderPreset/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020

2121
[assembly: Guid("5c4cedaf-3962-4d5b-b17f-35fa788f2016")]
2222

23-
[assembly: AssemblyVersion("5.5.1.*")]
23+
[assembly: AssemblyVersion("5.5.3.*")]

TensorShaderTest/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020

2121
[assembly: Guid("66a05297-9440-42a4-855f-2fd162428b8b")]
2222

23-
[assembly: AssemblyVersion("5.5.1.*")]
23+
[assembly: AssemblyVersion("5.5.3.*")]

0 commit comments

Comments
 (0)